2016-04-14 12 views
0

後、私は次のテキスト持っている:私は上記のコードを実行した場合Unbekannter Fehler: while trying to invoke the method test() of a null object loaded from local variable 'libInfo'前の任意の文字と正規表現と与えられた文字列

Matcher matcher = null; 
Pattern pattern = null; 
try 
{ 
    pattern = Pattern.compile(".*" + "Unbekannter Fehler: while trying to invoke the method test() of a null object loaded from local variable 'libInfo'" + ".*", Pattern.CASE_INSENSITIVE & Pattern.DOTALL); 
    matcher = pattern.matcher("Unbekannter Fehler: while trying to invoke the method test() of a null object loaded from local variable 'libInfo'"); 

    if (matcher.matches()) 
     System.out.println("Same!"); 
} 

を、それがfalseを返しますが、なぜですか?テキストが正規表現(No String.contains(...))で他のテキストに含まれているかどうかをチェックしたいだけです。私が正しく読むと、正規表現の先頭と最後に.*を使用して、チェックする文字列の前または後ろに何が来るのかはわかりません。

+0

パターンから文字が削除されるまで、パターンが一致するまで削除しておけば、一致しない文字を知ることができます。 –

答えて

3

すべての文字が正しくエスケープされていることを確認してください。試してみてくださいPattern#quote

1

パターン内のカッコを引用する必要があります。

pattern = Pattern.compile("Unbekannter Fehler: while trying to invoke the method test\\(\\) of a null object loaded from local variable 'libInfo'", Pattern.CASE_INSENSITIVE & Pattern.DOTALL); 

あなたはしかし始め、また最後に.*を必要はありません。

よろしくお願いいたします。

関連する問題