import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(\\{\\})\\1|[\\{](|\\s*?[^\\s\\{\\}]+?\\s*?|\\s*?\\S+?\\(.*?\\)\\s*?|\\s*?['][^']+?[']\\s*?|\\s*?[\"][^\"]+?[\"]\\s*?|\\s*?[\"][^\"]+?[\"]\\.\\S+?\\(.*?\\)\\s*?|\\s*?['][^']+?[']\\.\\S+?\\(.*?\\)\\s*?)(?:!(\\S+?))?[\\}]";
final String string = "{k} must-match\n"
+ "{} jhtgj {} must-match\n"
+ "{ } not-match \n\n"
+ "'\"{firstName} {lastName}\" <{email}>'\n\n"
+ "{0.concat(\"8a b c d e\", 6)} must-match\n"
+ "s df s sd{\"one fielslkein 897sd'f8'97f 89s(*Y*&Sc {}d name\".toFixed(7 , 8)} must-match\n"
+ "s df s sd{'one fielslkein \"897sd\"f897f 89s(*Y*&Sc {}d name'.toFixed(7 , 8)} must-match\n"
+ "sd{0.concat(\"8a b c d e\", 6)} must-match\n\n"
+ "ascdac{ \"one fieldname\" } must-match\n"
+ "ascdac{ \"onefi eldname\".kk(kk, \"dd\") } must-match\n"
+ "{onefieldname.toFixed(7 , 8)} must-match\n"
+ "dfgsdg { \"onefieldname\".toFixed(7 , 8)} must-match\n"
+ "{onefieldname: \"toFixed(7 , 8)\"} not-match\n"
+ "{\"onefieldname\": \"toFixed(7 , 8)\"} not-match\n"
+ "{ \"onefiel dname\" : \"toFixed(7 , 8)\"} not-match\n"
+ "{ \"onefiel dname\": 8} not-match \n\n"
+ "{ \"o dna\" : {onefi eldname.l(7 , 8)} } not-match\n"
+ "{ \"o dna\" : {\"onefi eldname\".l(7 , 8)} } match-inner\n"
+ "{ \"f dna\" : {\"onefi eldname\".toFixed(7 , 8) }} match-inner\n"
+ "{ \"f dna\" : { \"onefi eldname\".toFixed(7 , 8) }} match-inner\n"
+ "{ \"o dme\" : {onefieldname.toFixed(7 , 8)} } match-inner\n"
+ "{ \"on dname\" : { onefieldname.toFixed(7 , 8)} } match-inner\n\n"
+ "{ {}: \"{}\" }";
final Pattern pattern = Pattern.compile(regex);
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