fork download
  1. import java.util.*;
  2. import java.util.regex.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. class Ideone
  7. {
  8. public static void main (String[] args) throws java.lang.Exception
  9. {
  10. String regex = "%([^%.]+)%|(?<!\\$)\\$(?:\\{([^\\{}]+)\\}|([^$.\\s]+))";
  11. String string = "%ABC%\n$ABC.\n$ABC$XYZ ${ABC}\n\n$$EFG $${EFG}.";
  12. Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
  13. Matcher m = pattern.matcher(string);
  14. List<String> results = new ArrayList<>();
  15. while (m.find()) {
  16. results.add(Objects.toString(m.group(1),"") +
  17. Objects.toString(m.group(2),"") +
  18. Objects.toString(m.group(3),""));
  19. }
  20. System.out.println(results);
  21. }
  22. }
Success #stdin #stdout 0.13s 36520KB
stdin
Standard input is empty
stdout
[ABC, ABC, ABC, XYZ, ABC]