4

私はEclipseデバッガーを介していくつかのコードを実行していますが、いつ(は文字列配列です)と同等でa[1].matches("[a-zA-Z]")はありません。truea[1] = "ABCD"a

私はjavadocを読みましたが、有効な正規表現である必要がありますmatches..[a-zA-Z]

私がどこで間違っているか知っている人はいますか?

4

7 に答える 7

6

次の式を使用してみてください: [a-zA-Z]*(0 個以上の文字に一致します)。

少なくとも 1 文字が必要な場合は、次を使用します。[a-zA-Z]+

使用している表現は、量化されていないため、単一の英字のみに一致します。

于 2011-08-23T12:23:09.793 に答える
2

試してみてくださいa[1].matches("[a-zA-Z]+")。1文字だけではなく、「1文字以上」が一致する必要があると書かれています。

'+' の代わりに '*' は「0 個以上の文字」に一致するため、空の文字列に一致することに注意してください (おそらく、必要なものとは異なります)。

于 2011-08-23T12:23:39.177 に答える
1

そうあるべきだと思うa[1].matches("[a-zA-Z]*")

于 2011-08-23T12:23:20.357 に答える
0

[a-zA-Z]一文字しか受け付けません。おそらく必要[a-zA-Z]*です。

于 2011-08-23T12:23:29.717 に答える
0

文字列と一致しない理由は、RegEx 式が単一の文字と一致しようとしているためです。これを試して:

a[1].matches("[a-zA-Z]*")
于 2011-08-23T12:24:01.470 に答える
0

この式は、文字列にすべてのアルファベットが含まれているかどうかを確認するために機能するはずです。

a[1].matches("^[a-zA-Z]*$")
于 2022-03-01T09:31:24.377 に答える