import java.util.*;
import java.util.regex.*;
class Demo {
static public void main
(String[] args
) { 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'";
String regex
= "('[^']*'|\\d+)"; Pattern pat = Pattern.compile(regex);
Matcher m = pat.matcher(str);
int counter = 0;
int start = 0;
while (m.find()) {
int end = start + match.length();
match = match.replaceAll("\\A'|'\\Z", ""); // <-- comment out for NOT replacing
// leading and trailing single-quotes
counter++;
System.
out.
format("%d: %s [%d - %d]%n", counter, match, start, end
); start = end + 1;
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CgpjbGFzcyBEZW1vIHsKICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTdHJpbmcgc3RyID0gIjMxMDEsJzEyLCBIUTE4VTAxMDknLCcxMVlYMjdYMDA0MScsJ1hYMjEnLCdTSFY3LVAgSGlnLCBIaWcnLCcnLCdHVzEnLCdNT04nLCdFJywnQScsJ0FTRVhQT1JULTEnLDEsMTAxLDAsJzAnLCcxNTAwJywnVicsJycsJycsMCwnbWItbWFzdGVyMSciOwoKICAgICAgICBTdHJpbmcgcmVnZXggPSAiKCdbXiddKid8XFxkKykiOwogICAgICAgIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKHJlZ2V4KTsKICAgICAgICBNYXRjaGVyIG0gPSBwYXQubWF0Y2hlcihzdHIpOwoKICAgICAgICBpbnQgY291bnRlciA9IDA7CiAgICAgICAgaW50IHN0YXJ0ID0gMDsKICAgICAgICB3aGlsZSAobS5maW5kKCkpIHsKICAgICAgICAgICAgU3RyaW5nIG1hdGNoID0gbS5ncm91cCgxKTsKICAgICAgICAgICAgaW50IGVuZCA9IHN0YXJ0ICsgbWF0Y2gubGVuZ3RoKCk7CiAgICAgICAgICAgIG1hdGNoID0gbWF0Y2gucmVwbGFjZUFsbCgiXFxBJ3wnXFxaIiwgIiIpOyAgIC8vIDwtLSBjb21tZW50IG91dCBmb3IgTk9UIHJlcGxhY2luZyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNpbmdsZS1xdW90ZXMgCiAgICAgICAgICAgIGNvdW50ZXIrKzsKICAgICAgICAgICAgU3lzdGVtLm91dC5mb3JtYXQoIiVkOiAlcyBbJWQgLSAlZF0lbiIsIGNvdW50ZXIsIG1hdGNoLCBzdGFydCwgZW5kKTsKICAgICAgICAgICAgc3RhcnQgPSBlbmQgKyAxOwogICAgICAgIH0KICAgIH0KfQo=