import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
static void printMatch
(String regex,
String str,
int...
groups) {
System.
out.
println("String = " + str
); System.
out.
println("Regex = " + regex
); Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while (m.find())
for (int i: groups)
System.
out.
println("Group " + i
+ " = " + m.
group(i
)); }
{
String regex
= "echo[\\t ]+\".*?(?<!\\\\)\""; String str
= "some other stuff echo \"This will not \\\" work\" some other stuff"; printMatch(regex, str, 0);
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CgpwdWJsaWMgY2xhc3MgTWFpbgp7CiAgIHN0YXRpYyB2b2lkIHByaW50TWF0Y2goU3RyaW5nIHJlZ2V4LCBTdHJpbmcgc3RyLCBpbnQuLi4gZ3JvdXBzKQogICB7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nID0gIiArIHN0cik7CiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnZXggPSAiICsgcmVnZXgpOwogICAgICBQYXR0ZXJuIHAgPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgpOwogICAgICBNYXRjaGVyIG0gPSBwLm1hdGNoZXIoc3RyKTsKICAgICAgd2hpbGUgKG0uZmluZCgpKQogICAgICAgICBmb3IgKGludCBpOiBncm91cHMpCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiR3JvdXAgIiArIGkgKyAiID0gIiArIG0uZ3JvdXAoaSkpOwogICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgfQoKICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgogICB7CiAgICAgIFN0cmluZyByZWdleCA9ICJlY2hvW1xcdCBdK1wiLio/KD88IVxcXFwpXCIiOwogICAgICBTdHJpbmcgc3RyID0gInNvbWUgb3RoZXIgc3R1ZmYgZWNobyBcIlRoaXMgd2lsbCBub3QgXFxcIiB3b3JrXCIgc29tZSBvdGhlciBzdHVmZiI7CiAgICAgIHByaW50TWF0Y2gocmVnZXgsIHN0ciwgMCk7CiAgIH0KfQ==