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