4

我正在通过 Eclipse 调试器运行一些代码,并且a[1].matches("[a-zA-Z]")不等于true何时a[1] = "ABCD"a是一个字符串数组)。

我已经阅读了 javadocmatches并且[a-zA-Z]应该是一个有效的正则表达式..

有人知道我要去哪里错了吗?

4

7 回答 7

6

尝试使用此表达式:([a-zA-Z]*将匹配零个或多个字符)。

如果您需要至少一个字符,请使用:[a-zA-Z]+

您使用的表达式将仅匹配单个字母字符,因为它不是quantified

于 2011-08-23T12:23:09.793 回答
2

试试a[1].matches("[a-zA-Z]+")。它说“一个或多个字符”必须匹配而不是只匹配一个字符。

请注意,'*' 而不是 '+' 匹配“零个或多个字符”,因此它将匹配空字符串(可能不是您想要的)。

于 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\\s]+")  

可能有帮助

于 2017-08-13T16:04:19.603 回答
0

这个表达式应该适用于检查一个字符串是否包含所有字母。

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