Ich bin schwer zu verstehen, warum die folgende Regex nicht funktioniert. Meine Anforderung ist wie folgt.Regex, um nicht vorhergehende Zeichen und übereinstimmenden folgenden Zeichen
Übereinstimmung "config", die nicht gefolgt wird. (Zeitraum). Für diejenigen, die übereinstimmen, sollte "config" nicht mit * vorangestellt werden. Dies sollte auch die Funktion params sein, die zwischen (und) liegen sollte. Folgendes ist, was ich habe und es gibt mir keine richtigen Werte. Dies ist in Java.
String condition1 = "config.property == function(/*config ConfigCon */config,\"\")";
String condition2 = "config.property == function(/*config ConfigCon */config.prop1,\"\")";
String key = "config";
String matchString = "\\(.*(?<!\\*)" + key + "(?!\\.).*\\)";
System.out.println(matchString);
Pattern p = Pattern.compile(matchString);
Matcher m = p.matcher(condition1);
//The below should say true;
boolean cond = m.find();
//The below should say false;
m = p.matcher(condition2);
cond = m.find();
Meine Logik ist mit entkam beginnen (gefolgt von einem oder mehreren Zeichen, Negativ Lookbehind für entkam * gefolgt von durch negative Vorschau für esscaped gefolgt Schlüssel., Gefolgt von einer oder mehr Zeichen gefolgt von entkam). Was vermisse ich hier.
Vielen Dank für Ihre Antwort. Ich brauche sie auch zwischen den Klammern. Wie ich oben bemerkte, hatte ich die Regex-Recht, aber hatte einen Tippfehler in der Bedingung1, die das Problem verursacht. – Karthik
@Karthik also hast du das Problem gelöst oder es ist noch zu lösen ?? – SachinSarawgi
Wenn Sie Klammern einschließen möchten, verwenden Sie auch '(\ (* (? SachinSarawgi