/* package whatever; // don't place package name! */
/* The class name doesn't have to be Main, as long as the class is not public. */
class Main
{
public static final String EXAMPLE_TEST2
= "start{outer1}\n" +
"Recipe A:\n" +
"start{inner1}\n" +
"-ingredient1\n" +
"-ingredient2\n" +
"end{inner1}\n" +
"end{outer1}\n" +
"... something ...\n" +
"... blah blah blah ...\n" +
"start{outer2}\n" +
"Recipe B:\n" +
"start{inner1}\n" +
"- ingredient1\n" +
"end{inner1}\n" +
"end{outer2}\n" +
"... something ...";
public static void main
(String[] args
) {
String[] splitString2
= EXAMPLE_TEST2.
split("(?sm)start\\{(.*?)\\}((start\\{(.*?)\\}.*?end\\{(\\4)\\})|.)*?end\\{(\\1)\\}"); for (String string
: splitString2
) { }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKLyogVGhlIGNsYXNzIG5hbWUgZG9lc24ndCBoYXZlIHRvIGJlIE1haW4sIGFzIGxvbmcgYXMgdGhlIGNsYXNzIGlzIG5vdCBwdWJsaWMuICovCmNsYXNzIE1haW4KewogIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVYQU1QTEVfVEVTVDIgPSAKICAic3RhcnR7b3V0ZXIxfVxuIiArCiAgICAiUmVjaXBlIEE6XG4iICsKICAgICJzdGFydHtpbm5lcjF9XG4iICsKICAgICAgIi1pbmdyZWRpZW50MVxuIiArCiAgICAgICItaW5ncmVkaWVudDJcbiIgKwogICAgImVuZHtpbm5lcjF9XG4iICsKICAiZW5ke291dGVyMX1cbiIgKwogICIuLi4gc29tZXRoaW5nIC4uLlxuIiArCiAgIi4uLiBibGFoIGJsYWggYmxhaCAuLi5cbiIgKyAgIAogICJzdGFydHtvdXRlcjJ9XG4iICsKICAgICJSZWNpcGUgQjpcbiIgKwogICAgICAic3RhcnR7aW5uZXIxfVxuIiArCiAgICAgICAgIi0gaW5ncmVkaWVudDFcbiIgKwogICAgICAiZW5ke2lubmVyMX1cbiIgKwogICJlbmR7b3V0ZXIyfVxuIiArCiAgIi4uLiBzb21ldGhpbmcgLi4uIjsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykKICB7CiAgICBTdHJpbmdbXSBzcGxpdFN0cmluZzIgPSBFWEFNUExFX1RFU1QyLnNwbGl0KCIoP3NtKXN0YXJ0XFx7KC4qPylcXH0oKHN0YXJ0XFx7KC4qPylcXH0uKj9lbmRcXHsoXFw0KVxcfSl8LikqP2VuZFxceyhcXDEpXFx9Iik7CiAgICBmb3IgKFN0cmluZyBzdHJpbmcgOiBzcGxpdFN0cmluZzIpIHsKICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0cmluZyk7CiAgICB9CiAgfQp9