0

多分誰かが正規表現で私を助けることができます。これは機能しません:

public static void main(String[] args){
    String pattern = "(?i).*a[\\s-\\.]?nton.*";
    String text = "a-nton vom 27.2.2012";
    if (pattern.matches(text)){
        System.out.println("FOUND");
    }else{
        System.out.println("NOT FOUND");
    }
}

テキストに次のいずれかの単語が含まれている場合、正規表現はtrueになります。

a-ntonまたはntonまたはanton

この単語の前後は任意のテキストにすることができます

ただし、上記のパターンは「見つかりません」になります

4

1 に答える 1

4

に変更if (pattern.matches(text)) {if (text.matches(pattern)) {ます。

一致メソッドは、パターンがメソッドに渡されるために呼び出された文字列をチェックするため、テキストで呼び出してパターンを渡します。将来、より高度な正規表現が必要な場合は、クラスとクラスも確認することをお勧めしますPatternMatcher

matches(String)メソッドのjavadocを参照してください。

パラメータ:regex-この文字列が一致する正規表現

于 2012-09-19T20:39:47.287 に答える