1. ホーム
  2. java

[解決済み] String.matches()で正規表現がうまくいかない

2022-03-07 17:26:31

質問

私はこの小さなコードを持っています。

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

印刷することを想定

dkoe

が、何も表示されない!

どうすればいいですか?

ようこそ、Javaの間違った名前の .matches() メソッドで... これは、すべての入力を試し、マッチングさせます。残念ながら、他の言語もこれに追随しています :(

正規表現が入力テキストにマッチするかどうかを確認したい場合は Pattern , a Matcher と、その .find() というメソッドがあります。

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

入力が小文字だけであるかどうかを確認したい場合は、以下のようにします。 .matches() しかし、1つ以上の文字にマッチさせる必要があります。 + のように文字クラスに追加します。 [a-z]+ . または ^[a-z]+$.find() .