正则表达式在 String.matches() 中不起作用
我有这一小段代码
String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
应该打印
dkoe
但它什么也打印不了!!
我有这一小段代码
String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
应该打印
dkoe
但它什么也打印不了!!
欢迎来到Java的错误命名的.matches()
方法...它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:(
如果要查看正则表达式是否与输入文本匹配,请使用 、 a 和匹配器的方法:Pattern
Matcher
.find()
Pattern p = Pattern.compile("[a-z]");
Matcher m = p.matcher(inputstring);
if (m.find())
// match
如果您确实想要查看输入是否只有小写字母,则可以使用 ,但您需要匹配一个或多个字符:将 a 附加到您的字符类,如 中所示。或者使用 和 。.matches()
+
[a-z]+
^[a-z]+$
.find()
[a-z]
匹配 a 和 z 之间的单个字符。因此,例如,如果您的字符串只是 ,那么它将匹配并打印出来。"d"
您需要将正则表达式更改为匹配一个或多个字符。[a-z]+