import java.util.*;
import java.util.regex.*;
class Demo {
static public void main
(String[] args
) { arr[1] = "CATEGORYTYPE1\n"
+ "{\n"
+ " CATEGORYSUBTYPE1\n"
+ " {\n"
+ " OPTION1 \"ABcd efg1234\"\n"
+ " OPTION2 ABCdefg12345\n"
+ " OPTION3 15\n"
+ " }\n"
+ " CATEGORYSUBTYPE2\n"
+ " {\n"
+ " OPTION1 \"Blah Blah 123\"\n"
+ " OPTION2 Blah\n"
+ " OPTION3 10\n"
+ " OPTION4 \"Blah\"\n"
+ " }\n"
+ "}";
arr[0] = "ab \"cd \\\"ef\\\" gh\" ij \"kl \\\"no pq\\\"\\\" rs\"";
Pattern p = Pattern.compile("(\\S*?\".*?(?<!\\\\)\")+\\S*|\\S+");
System.
out.
format("Original string: %s%nAfter splitting:%n", str
);
Matcher m = p.matcher(str);
while (m.find()) {
System.
out.
format("|%s|%n", m.
group(0)); }
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CgpjbGFzcyBEZW1vIHsKICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTdHJpbmdbXSBhcnIgPSBuZXcgU3RyaW5nWzJdOwogICAgICAgIGFyclsxXSA9ICJDQVRFR09SWVRZUEUxXG4iCiAgICAgICAgICAgICAgICsgIntcbiIKICAgICAgICAgICAgICAgKyAiICAgIENBVEVHT1JZU1VCVFlQRTFcbiIKICAgICAgICAgICAgICAgKyAiICAgIHtcbiIKICAgICAgICAgICAgICAgKyAiICAgICAgICBPUFRJT04xIFwiQUJjZCBlZmcxMjM0XCJcbiIKICAgICAgICAgICAgICAgKyAiICAgICAgICBPUFRJT04yIEFCQ2RlZmcxMjM0NVxuIgogICAgICAgICAgICAgICArICIgICAgICAgIE9QVElPTjMgMTVcbiIKICAgICAgICAgICAgICAgKyAiICAgIH1cbiIKICAgICAgICAgICAgICAgKyAiICAgIENBVEVHT1JZU1VCVFlQRTJcbiIKICAgICAgICAgICAgICAgKyAiICAgIHtcbiIKICAgICAgICAgICAgICAgKyAiICAgICAgICBPUFRJT04xIFwiQmxhaCBCbGFoIDEyM1wiXG4iCiAgICAgICAgICAgICAgICsgIiAgICAgICAgT1BUSU9OMiBCbGFoXG4iCiAgICAgICAgICAgICAgICsgIiAgICAgICAgT1BUSU9OMyAxMFxuIgogICAgICAgICAgICAgICArICIgICAgICAgIE9QVElPTjQgXCJCbGFoXCJcbiIKICAgICAgICAgICAgICAgKyAiICAgIH1cbiIKICAgICAgICAgICAgICAgKyAifSI7CiAgICAgICAgYXJyWzBdID0gImFiIFwiY2QgXFxcImVmXFxcIiBnaFwiIGlqIFwia2wgXFxcIm5vIHBxXFxcIlxcXCIgcnNcIiI7IAoKICAgICAgICBQYXR0ZXJuIHAgPSBQYXR0ZXJuLmNvbXBpbGUoIihcXFMqP1wiLio/KD88IVxcXFwpXCIpK1xcUyp8XFxTKyIpOwogICAgICAgIAogICAgICAgIGZvciAoU3RyaW5nIHN0ciA6IGFycikgewogICAgICAgICAgICBTeXN0ZW0ub3V0LmZvcm1hdCgiT3JpZ2luYWwgc3RyaW5nOiAlcyVuQWZ0ZXIgc3BsaXR0aW5nOiVuIiwgc3RyKTsKCiAgICAgICAgICAgIE1hdGNoZXIgbSA9IHAubWF0Y2hlcihzdHIpOwogICAgICAgICAgICB3aGlsZSAobS5maW5kKCkpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQuZm9ybWF0KCJ8JXN8JW4iLCBtLmdyb3VwKDApKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CiAgICAgICAgfQogICAgfQp9Cg==