fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.regex.*;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. private static final String GOOD_1 = "[key1:value1,key2:value2,key3:value3],[key21:value21,key22:value22]";
  12. private static final String GOOD_2 = "[key1:value1],[key21:value21]";
  13. private static final String GOOD_3 = "[key1:value1]";
  14. private static final String BAD_1 = "[key1:value1],[key21]";
  15. private static final String KEY_VALUE = "[^:,]+:[^:,]+";
  16. private static final String TOKEN = "\\[" + KEY_VALUE + "(," + KEY_VALUE + ")*\\]";
  17. private static final String REGEX = TOKEN + "(," + TOKEN + ")*";
  18.  
  19. public static void main (String[] args) throws java.lang.Exception
  20. {
  21. System.out.println("REGEX is " + REGEX);
  22. System.out.println(GOOD_1 + " is " + check(GOOD_1));
  23. System.out.println(GOOD_2 + " is " + check(GOOD_2));
  24. System.out.println(GOOD_3 + " is " + check(GOOD_3));
  25. System.out.println(BAD_1 + " is " + check(BAD_1));
  26. }
  27.  
  28. private static boolean check(String str) {
  29. return str.matches(REGEX);
  30. }
  31. }
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
REGEX is \[[^:,]+:[^:,]+(,[^:,]+:[^:,]+)*\](,\[[^:,]+:[^:,]+(,[^:,]+:[^:,]+)*\])*
[key1:value1,key2:value2,key3:value3],[key21:value21,key22:value22] is true
[key1:value1],[key21:value21] is true
[key1:value1] is true
[key1:value1],[key21] is false