import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:\\\"(?:(?<=\\\"(?=[^\\n]))[^\\n]+?(?=(?<!\\\\))(?=\\\"))?\\\")|(\\B'(?:(?<='(?=[^\\n]))[^\\n]+?(?=(?<!\\\\))(?='))?')";
final String string = "\n"
+ "1. Valid double-quoted strings:\n"
+ " - \"Hello\"\n"
+ " - \"This is a test\"\n"
+ " - \"123\"\n"
+ " - \"Special characters: @#$%^&*()_+\"\n"
+ " - \"Escape sequence: \\n\"\n\n"
+ "2. Valid double-quoted strings with additional characters or variables:\n"
+ " - \" test aaaaa \\\" \" + asdf\n"
+ " - \" test \" + ( \"aaaaa\" ) + gdf\n"
+ " - \" test \\\" \" + `\" aaaa \" + dfg\n"
+ " - \" test ' aaaaa \\\" \" + dfg\n"
+ " - \"\"\n\n"
+ "3. Valid double-quoted strings with special characters:\n"
+ " - \"sas''as\\\"a1\\'2 ! -_?:sa\"\n"
+ " - \"''\"\n"
+ " - \"\\abnb\\ajhgf\\crt098& \\\"'\"\n\n"
+ "4. Invalid double-quoted strings:\n"
+ " - \" test \" + ( \"aaaaa\" ) \\\" saf\n"
+ " - \"\\\\ + \\* test \" \\$ \\. dsdfs\n"
+ " - (\\\" test \\\" \" + \" aaaa \" sfgd\n"
+ " - ' test ' + aas ( \"aaaaa\" ) + '\\ sd\n"
+ " - '\\\\ + \\* test ' \\$ \\. trace\n"
+ " - (' test ' as ' + ' aaaa '\n"
+ " - '\"\"'\n"
+ " - '\"sas'\n"
+ " - 'ads'\n"
+ " - 'asdasd\\\"asdsa'\n"
+ " - \"klkl\"klkl\n"
+ " - \"asa\\'sasa\\\\\"\n"
+ " - \\'\\\\\\'\n"
+ " - \"hhhh\"klkl\"\n"
+ " - 'jkjkjk'klklk'\n"
+ " - '\\\"\\\\\\\"'\n"
+ " - ''\n"
+ " - '\\\"asa\\'sasa\\\\\\\"'\n"
+ " - \"sasasasa\\\\\\\\\\\\\"\n\n\n\n"
+ "1. Valid single-quoted strings:\n"
+ " - 'Hello'\n"
+ " - 'This is a test'\n"
+ " - '123'\n"
+ " - 'Special characters: @#$%^&*()_+'\n"
+ " - 'Escape sequence: \\n'\n\n"
+ "2. Valid single-quoted strings with additional characters or variables:\n"
+ " - ' test aaaaa \\' ' + asdf\n"
+ " - ' test ' + ( 'aaaaa' ) + gdf\n"
+ " - ' test \\' ' + ' aaaa' + dfg\n"
+ " - ' test \" aaaaa \\' ' + dfg\n"
+ " - ''\n\n"
+ "3. Valid single-quoted strings with special characters:\n"
+ " - 'sas\"\"as\\'a1\\\"2 ! -_?:sa'\n"
+ " - '\"\"'\n"
+ " - '\\abnb\\ajhgf\\crt098& \\'\"\"'\n\n"
+ "4. Invalid single-quoted strings:\n"
+ " - ' test ' + ( 'aaaaa' ) \\' saf\n"
+ " - '\\\\ + \\* test ' \\$ \\. dsdfs\n"
+ " - (\\' test \\' + ' aaaa ' sfgd\n"
+ " - \" test \\\" \" + \" aaaa \" sfgd\n"
+ " - ' test ' + aas ( 'aaaaa' ) + '\\ sd\n"
+ " - '\\\\ + \\* test ' \\$ \\. trace\n"
+ " - (' test ' as ' + ' aaaa '\n"
+ " - \"''\"\n"
+ " - 'sas\"\n"
+ " - \"ads'\n"
+ " - 'asdasd\\'asdsa'\n"
+ " - \"klkl\"klkl\n"
+ " - \"asa\\'sasa\\\\\"\n"
+ " - \\'\\\\\\'\n"
+ " - 'hhhh\"klkl\\'\\\n"
+ " - \\'jkjkjk\"klklk'\n"
+ " - \"\\'\\\\\\'\"\n"
+ " - ''\n"
+ " - '\\\"asa\\'sasa\\\\\\\"'\n"
+ " - 'sasasasa\\\\\\\\\\\\'\n";
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