私はこの正規表現を使用しようとしています:
if (input.matches("(^(?=.*[A-Z]{2}"))
しかし、これは私にとってはうまくいきません。助けてください。
使用している正規表現:
"^(?=.*[A-Z]{2})" //added the unmatched paranthesis
先読みを使用して、文字列内のA-Z
任意の範囲内に 2 つの連続する文字があるかどうかを確認します。
最初の 2 つがその範囲内にあるかどうかを確認するには、次のようにします。
input.matches("^[A-Z]{2}.*")
true を返すには、文字列全体に一致する必要があるため.*
、が必要であることに注意してください。matches()
input
private boolean isAlpha(char c) {
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
}
private boolean startsWith2Alpha(String s) {
return (s.length() >= 2) && isAlpha(s.charAt(0)) && isAlpha(s.charAt(1));
}
正規表現なしでとても簡単です。
if(input.matches("^[a-zA-Z]{2}")
英語以外の言語のサポートを気にしますか? input.matches("\\p{L}{2}.*")
トリックを行います。
ええ!入力した正規表現は標準のものではないため、機能しません。A と O の文字である必要があります。