正規表現が 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 サイトの他の関連記事を参照してください。