次の正規表現が機能しない理由を理解するのは難しいです。私の要件は以下の通りです。正規表現と一致しない文字と一致する正規表現
"config"と一致しない。 (期間)。一致するものについては、 "config"の前に*を付けるべきではありません。また、関数paramsは、(と)の間にあることを意味します。以下は私が持っているものであり、私には正しい値が与えられていません。これは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();
私のロジックで開始された(一つ以上の文字、エスケープ* esscapedのための否定先読みが続くキーが続くため負の後方参照が続く。エスケープに続く1つ以上の文字が続く)脱出しました。私はここで何が欠けているのですか?
ご返信ありがとうございます。私はまた、それらを括弧の間にする必要があります。上記のとおり、私は正規表現の権利を持っていましたが、問題の原因となった条件1にタイプミスがありました。 – Karthik
@Karthikので、あなたは問題を解決したか、まだ解決されていますか? – SachinSarawgi
カッコを入れる場合は、 '(\\(。*)?key +"(?!\\。)。* \\)) ' – SachinSarawgi