fork(5) download
  1. import java.util.regex.*;
  2. import java.util.*;
  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 s = "qweSSXFF rrrrrFfF7f syyyyyearssssssyear";
  11. String regex = "(?i)RR|SYYYY|SSSSS|ff\\d|ff(?=\\D)|SSXFF|E|YEAR|SYEAR";
  12. String[] res = splitIncludingDelimiters(regex, s);
  13. System.out.println(Arrays.toString(res));
  14. }
  15. public static String[] splitIncludingDelimiters(String regex, String text) {
  16. List<String> list = new LinkedList<>();
  17. Matcher matcher = Pattern.compile(regex).matcher(text);
  18.  
  19. StringBuffer sbuf = new StringBuffer();
  20. while(matcher.find()){
  21. matcher.appendReplacement(sbuf, matcher.group());
  22. list.add(sbuf.toString());
  23. sbuf.setLength(0);
  24. }
  25.  
  26. matcher.appendTail(sbuf);
  27. if (sbuf.length() > 0) list.add(sbuf.toString());
  28.  
  29. return list.toArray(new String[list.size()]);
  30. }
  31. }
Success #stdin #stdout 0.06s 27952KB
stdin
Standard input is empty
stdout
[qwe, SSXFF,  rr, rr, rFf, F7f syyyy, year, sssss, syear]