我正在通过 Eclipse 调试器运行一些代码,并且a[1].matches("[a-zA-Z]")
不等于true
何时a[1] = "ABCD"
(a
是一个字符串数组)。
我已经阅读了 javadocmatches
并且[a-zA-Z]
应该是一个有效的正则表达式..
有人知道我要去哪里错了吗?
试试a[1].matches("[a-zA-Z]+")
。它说“一个或多个字符”必须匹配而不是只匹配一个字符。
请注意,'*' 而不是 '+' 匹配“零个或多个字符”,因此它将匹配空字符串(可能不是您想要的)。
我认为应该是a[1].matches("[a-zA-Z]*")
[a-zA-Z]
只接受一个字母。你可能需要[a-zA-Z]*
.
您不匹配字符串的原因是您的 RegEx 表达式试图仅匹配单个字符。试试这个:
a[1].matches("[a-zA-Z]*")
a[1].matches("[a-zA-Z\\s]+")
可能有帮助
这个表达式应该适用于检查一个字符串是否包含所有字母。
a[1].matches("^[a-zA-Z]*$")