-3

私はこの正規表現を使用しようとしています:

if (input.matches("(^(?=.*[A-Z]{2}"))

しかし、これは私にとってはうまくいきません。助けてください。

4

5 に答える 5

4

使用している正規表現:

"^(?=.*[A-Z]{2})" //added the unmatched paranthesis

先読みを使用して、文字列内のA-Z 任意の範囲内に 2 つの連続する文字があるかどうかを確認します。
最初の 2 つがその範囲内にあるかどうかを確認するには、次のようにします。

input.matches("^[A-Z]{2}.*")

true を返すには、文字列全体に一致する必要があるため.*、が必要であることに注意してください。matches()input

于 2012-07-23T15:13:33.727 に答える
2
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));
}

正規表現なしでとても簡単です。

于 2012-07-23T15:09:30.173 に答える
1

if(input.matches("^[a-zA-Z]{2}")

于 2012-07-23T15:05:07.610 に答える
0

英語以外の言語のサポートを気にしますか? input.matches("\\p{L}{2}.*")トリックを行います。

于 2012-07-23T15:18:52.513 に答える
0

ええ!入力した正規表現は標準のものではないため、機能しません。A と O の文字である必要があります。

于 2012-07-23T16:34:40.173 に答える