fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.util.regex.*;
  4.  
  5. class Main
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. String input = "hello %my% world %but% not %your% world";
  10.  
  11. String singleDelimRegexp = "(.*)(%[^%]*%)(.*)";
  12. Pattern singleDelimPattern = Pattern.compile(singleDelimRegexp);
  13. Matcher singleDelimMatcher = singleDelimPattern.matcher(input);
  14.  
  15. if (singleDelimMatcher.matches()) {
  16. String before = singleDelimMatcher.group(1);
  17. String delim = singleDelimMatcher.group(2);
  18. String after = singleDelimMatcher.group(3);
  19.  
  20. System.out.println(before + "//" + delim + "//" + after);
  21. }
  22.  
  23. String multiDelimRegexp = "%[^%]*%";
  24. Pattern multiDelimPattern = Pattern.compile(multiDelimRegexp);
  25. Matcher multiDelimMatcher = multiDelimPattern.matcher(input);
  26.  
  27. int lastEnd = 0;
  28. while (multiDelimMatcher.find()) {
  29. String data = input.substring(lastEnd, multiDelimMatcher.start());
  30. String delim = multiDelimMatcher.group();
  31. lastEnd = multiDelimMatcher.end();
  32. System.out.println(data);
  33. System.out.println(delim);
  34. }
  35. String lastData = input.substring(lastEnd);
  36. System.out.println(lastData);
  37.  
  38. }
  39. }
  40.  
  41.  
Success #stdin #stdout 0.03s 245632KB
stdin
Standard input is empty
stdout
hello %my% world %but% not //%your%// world
hello 
%my%
 world 
%but%
 not 
%your%
 world