正则表达式不适用于String.matches()
我有这小段代码
String[] words = {"{apf","hum_","dkoe","12f"};for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
应该打印
dkoe
但是它什么也没打印!
回答:
欢迎使用Java的错误命名.matches()
方法…它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:(
如果要查看正则表达式是否与输入文本匹配,请使用Pattern,a Matcher
和.find()
匹配器的方法:
Pattern p = Pattern.compile("[a-z]");Matcher m = p.matcher(inputstring);
if (m.find())
// match
如果确实要查看输入是否仅包含小写字母,则可以使用.matches()
,但需要匹配一个或多个字符:将a附加+到字符类中,如中所示[a-z]+
。或使用^[a-z]+$
和.find()
。
以上是 正则表达式不适用于String.matches() 的全部内容, 来源链接: utcz.com/qa/421707.html