繁体   English   中英

Java string.matches()返回错误的语句

[英]Java string.matches() returns wrong statement

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

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

谁知道我哪里出错了?

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

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

您使用的表达式只匹配单个字母字符,因为它没有量化

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

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

我认为它应该是a[1].matches("[a-zA-Z]*")

a[1].matches("[a-zA-Z\\s]+")  

可能有帮助

[a-zA-Z]只接受一个字母。 你可能需要[a-zA-Z]*

你不匹配字符串的原因是你的RegEx表达式试图只匹配一个字符。 尝试这个:

a[1].matches("[a-zA-Z]*")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM