import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(\\\"([^\\\"\\n\\\\]|\\\\[abfnrtv?\\\"'\\\\0-7]|\\\\x[0-9a-fA-F])*\\\"|'([^'\\n\\\\]|\\\\[abfnrtv?\\\"'\\\\0-7]|\\\\x[0-9a-fA-F])*'|\\\"\\\"\\\"((?!\\\"\\\"\\\")[^\\\\]|\\\\[abfnrtv?\\\"'\\\\0-7]|\\\\x[0-9a-fA-F])*\\\"\\\"\\\")$";
final String string = "\"matches\"\n"
+ "\"this also \\\" matches\"\n"
+ "'matches'\n"
+ "'this also \\' matches'\n"
+ "\"no\n"
+ "match\"\n"
+ "'no\n"
+ "match'\n"
+ "\"\"\"matches\"\"\"\n\n"
+ "\"\"\" another\n"
+ "match \"\"\"\n\n"
+ "\"\"\" no \"\"\" match \"\"\"\n\n"
+ "\"\"\" this \"\\\"\" matches\"\"\"";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html