fork download
  1. import java.util.*;
  2. import java.util.regex.*;
  3.  
  4. class Demo {
  5. static public void main(String[] args) {
  6. String str = "3101,'12, HQ18U0109','11YX27X0041','XX21','SHV7-P Hig, Hig','','GW1','MON','E','A','ASEXPORT-1',1,101,0,'0','1500','V','','',0,'mb-master1'";
  7.  
  8. String regex = "('[^']*'|\\d+)";
  9. Pattern pat = Pattern.compile(regex);
  10. Matcher m = pat.matcher(str);
  11.  
  12. int counter = 0;
  13. int start = 0;
  14. while (m.find()) {
  15. String match = m.group(1);
  16. int end = start + match.length();
  17. match = match.replaceAll("\\A'|'\\Z", ""); // <-- comment out for NOT replacing
  18. // leading and trailing single-quotes
  19. counter++;
  20. System.out.format("%d: %s [%d - %d]%n", counter, match, start, end);
  21. start = end + 1;
  22. }
  23. }
  24. }
  25.  
Success #stdin #stdout 0.09s 380224KB
stdin
Standard input is empty
stdout
1: 3101 [0 - 4]
2: 12, HQ18U0109 [5 - 20]
3: 11YX27X0041 [21 - 34]
4: XX21 [35 - 41]
5: SHV7-P Hig, Hig [42 - 59]
6:  [60 - 62]
7: GW1 [63 - 68]
8: MON [69 - 74]
9: E [75 - 78]
10: A [79 - 82]
11: ASEXPORT-1 [83 - 95]
12: 1 [96 - 97]
13: 101 [98 - 101]
14: 0 [102 - 103]
15: 0 [104 - 107]
16: 1500 [108 - 114]
17: V [115 - 118]
18:  [119 - 121]
19:  [122 - 124]
20: 0 [125 - 126]
21: mb-master1 [127 - 139]