我有一小段代码
String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
应该打印
dkoe
但它什么也没打印!!
最佳答案
欢迎来到 Java 的错名 .matches()
方法...它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:(
如果您想查看正则表达式是否匹配输入文本,请使用 Pattern
、Matcher
和 .find()
方法匹配器:
Pattern p = Pattern.compile("[a-z]");
Matcher m = p.matcher(inputstring);
if (m.find())
// match
如果您确实想要查看输入是否只有小写字母,您可以使用 .matches()
,但您需要匹配一个或多个字符:附加一个 +
到你的字符类,如 [a-z]+
。或者使用 ^[a-z]+$
和 .find()
。
关于java - 正则表达式在 String.matches() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8923398/