ホームページ >Java >&#&チュートリアル >Java の String.matches() で正規表現が機能しないのはなぜですか?

Java の String.matches() で正規表現が機能しないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-29 17:49:14384ブラウズ

Why Doesn't My Regex Work in Java's String.matches()?

正規表現が String.matches() で機能しない

質問:

Aユーザーは小文字のみを含む文字列と一致するコード スニペットを作成しました文字:

String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
    if(s.matches("[a-z]"))
    {
        System.out.println(s);
    }
}

ただし、出力として "dkoe" が期待されているにもかかわらず、コードは何も出力しません。

答え:

逆その名のとおり、Java の String.matches() メソッドは、入力文字列全体を正規表現と照合します。文字列の一部のみを一致させるには、代わりにパターンとマッチャーを使用します:

Pattern p = Pattern.compile("[a-z]+");
Matcher m = p.matcher(inputString);
if (m.find())
    // match

または、文字列全体を一致させたい場合は、matches() メソッドの文字クラスに を追加します:

if(s.matches("[a-z]+"))

または完全な正規表現パターンを使用します:

if(s.matches("^[a-z]+$"))

これは小文字のみを含む文字列と一致します^ アンカーと $ アンカーにより、入力文字列全体が一致することが保証されます。

以上がJava の String.matches() で正規表現が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。