4

応答ログの出力を確認するには、正規表現を作成する必要があります。ログファイルは、入力に基づいて常に異なります。したがって、関数への入力に基づいて動的な正規表現を作成したいと思います。比較のために一度に可変数の変数を渡す必要があるかもしれませんが、その'または'係数を正規表現に挿入するにはどうすればよいですか?

Javaでこのような正規表現を作成することは可能ですか?どうすればよいですか?

4

2 に答える 2

4

はい、正規表現は単なる文字列です。ユーザー入力を定数部分に連結し、そこからパターンを作成できます。

ユーザー入力を文字どおりに一致させたい場合は、Pattern.quote("UserString")正規表現でエスケープする必要があります。

例:

String UserInput = "Bar()";
String Prefix = "Foo";

Pattern p = Pattern.compile(Prefix + Pattern.quote(UserInput));

String s1 = "FooBar()";
String s2 = "FooBarNo";

String[] s = { s1, s2};

for (String a : s) {
    Matcher m = p.matcher(a);
    if (m.find())
        System.out.println(a + " ==> Success");
    else
        System.out.println(a + " ==> Failure");
}

出力:

FooBar() ==> 成功
FooBarNo ==> 失敗

于 2012-04-16T11:00:10.420 に答える