0

わずかな正規表現の問題があります。単語が文字列内に含まれているかどうかを確認するために、次のコードに書き込みました。

boolean matches = Pattern.matches("\\b" + Pattern.quote(item.name) + "\\b", nap.code);

item.nameは「half」のようになりますnap.codeは「inthalfOfFour(){return half(4);}」のようになります

それでも、パターンマッチはfalseを返します...ここで何が間違っているのですか?

また...単語が文字列内に含まれている場合、これをfalseに戻す方法はありますか?

4

2 に答える 2

3

パターンマッチは、文字列の一部だけでなく、文字列全体にも一致すると思います。したがって、プレフィックスには。*を付け、ポストフィックスには。*などを付けます。

パターンと一致を個別に使用してから、マッチャーで「find()」を使用してサブ一致を検索します

于 2012-08-02T09:24:12.897 に答える
1

そのJava.lang.String.contains()方法はあなたが望むことをしませんか?

boolean contains = nap.code.contains(item.name);

編集:単語が存在する場合にのみtrueを返すには、\ Wパターン(単語以外の文字)を使用すると役立ちます:

\W*(YOUR_WORD)\W*
于 2012-08-02T09:24:08.837 に答える