/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.regex.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String s
= "0:ID IN (1002,25);1:ID IN (2,3,4) AND COQ>=0 AND COQ<=9;2:ID IN (73150,73150) AND TOTAL>=0 AND TOTAL<=99999" ; Pattern pattern = Pattern.compile ( "(?:^\\ s*(?!\\ s*\\ d+\\ s*:)|\\ d+\\ s*:)((?:\' [^\' ]*\' |\" [^\" ]*\" |[^;])+)" ) ;
Matcher matcher = pattern.matcher ( s) ;
System .
out .
println ( "Match 1:\n " ) ; while ( matcher.find ( ) ) {
System .
out .
println ( matcher.
group ( 1 ) ) ; }
System .
out .
println ( "\n Match 2:\n " ) ; s = "0 :ID IN (1002,25); 1 :ID IN (2,3,4) AND COQ>=0 AND COQ<=9;2:ID IN\n (73150,73150) AND TOTAL>=0 AND TOTAL<=99999" ;
matcher = pattern.matcher ( s) ;
while ( matcher.find ( ) ) {
System .
out .
println ( matcher.
group ( 1 ) ) ; }
System .
out .
println ( "\n Match 3:\n " ) ; s = " 0 :NAME = '3:;' OR NAME = \" 0 : ;\" ; 1 :CO>=0;2:TOTAL<=99999" ;
matcher = pattern.matcher ( s) ;
while ( matcher.find ( ) ) {
System .
out .
println ( matcher.
group ( 1 ) ) ; }
System .
out .
println ( "\n Match 4:\n " ) ; s = "ID IN (1002,25); 1 :ID IN (2,3,4) AND COQ>=0 AND COQ<=9;2:ID IN\n (73150,73150) AND TOTAL>=0 AND TOTAL<=99999" ;
matcher = pattern.matcher ( s) ;
while ( matcher.find ( ) ) {
System .
out .
println ( matcher.
group ( 1 ) ) ; }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkKCQlTdHJpbmcgcyA9ICIwOklEIElOICgxMDAyLDI1KTsxOklEIElOICgyLDMsNCkgQU5EIENPUT49MCBBTkQgQ09RPD05OzI6SUQgSU4gKDczMTUwLDczMTUwKSBBTkQgVE9UQUw+PTAgQU5EIFRPVEFMPD05OTk5OSI7CgkJUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKCIoPzpeXFxzKig/IVxccypcXGQrXFxzKjopfFxcZCtcXHMqOikoKD86XCdbXlwnXSpcJ3xcIlteXCJdKlwifFteO10pKykiKTsKCQlNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIocyk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJNYXRjaCAxOlxuIik7CgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKXsKCQkJU3lzdGVtLm91dC5wcmludGxuKG1hdGNoZXIuZ3JvdXAoMSkpOyAKCQl9IAoJCVN5c3RlbS5vdXQucHJpbnRsbigiXG5NYXRjaCAyOlxuIik7CgkJcyA9ICIwICAgIDpJRCBJTiAoMTAwMiwyNSk7ICAgMSAgIDpJRCBJTiAoMiwzLDQpIEFORCBDT1E+PTAgQU5EIENPUTw9OTsyOklEIElOXG4gKDczMTUwLDczMTUwKSBBTkQgVE9UQUw+PTAgQU5EIFRPVEFMPD05OTk5OSI7CgkJbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcihzKTsKCQl3aGlsZSAobWF0Y2hlci5maW5kKCkpewoJCQlTeXN0ZW0ub3V0LnByaW50bG4obWF0Y2hlci5ncm91cCgxKSk7IAoJCX0gCgkJU3lzdGVtLm91dC5wcmludGxuKCJcbk1hdGNoIDM6XG4iKTsKCQlzID0gIiAwICAgIDpOQU1FID0gJzM6OycgT1IgTkFNRSA9IFwiMCA6ICA7XCIgOyAgIDEgICA6Q08+PTA7MjpUT1RBTDw9OTk5OTkiOwoJCW1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIocyk7CgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKXsKCQkJU3lzdGVtLm91dC5wcmludGxuKG1hdGNoZXIuZ3JvdXAoMSkpOyAKCQl9IAoJCVN5c3RlbS5vdXQucHJpbnRsbigiXG5NYXRjaCA0OlxuIik7CgkJcyA9ICJJRCBJTiAoMTAwMiwyNSk7IDEgOklEIElOICgyLDMsNCkgQU5EIENPUT49MCBBTkQgQ09RPD05OzI6SUQgSU5cbiAoNzMxNTAsNzMxNTApIEFORCBUT1RBTD49MCBBTkQgVE9UQUw8PTk5OTk5IjsKCQltYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHMpOwoJCXdoaWxlIChtYXRjaGVyLmZpbmQoKSl7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKDEpKTsgCgkJfSAKCX0KfQ==
stdout
Match 1:
ID IN (1002,25)
ID IN (2,3,4) AND COQ>=0 AND COQ<=9
ID IN (73150,73150) AND TOTAL>=0 AND TOTAL<=99999
Match 2:
ID IN (1002,25)
ID IN (2,3,4) AND COQ>=0 AND COQ<=9
ID IN
(73150,73150) AND TOTAL>=0 AND TOTAL<=99999
Match 3:
NAME = '3:;' OR NAME = "0 : ;"
CO>=0
TOTAL<=99999
Match 4:
ID IN (1002,25)
ID IN (2,3,4) AND COQ>=0 AND COQ<=9
ID IN
(73150,73150) AND TOTAL>=0 AND TOTAL<=99999