小编典典

正则表达式在 String.matches() 中不起作用

all

我有一小段代码

String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
    if(s.matches("[a-z]"))
    {
        System.out.println(s);
    }
}

应该打印

dkoe

但它什么也没打印!!


阅读 59

收藏
2022-08-19

共1个答案

小编典典

欢迎使用 Java
的错误命名.matches()方法…它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:(

如果您想查看正则表达式是否匹配输入文本,请使用 a Pattern, aMatcher.find()匹配器的方法:

Pattern p = Pattern.compile("[a-z]");
Matcher m = p.matcher(inputstring);
if (m.find())
    // match

如果您确实想要查看输入是否只有小写字母,则可以使用.matches(),但您需要匹配一个或多个字符:将 a 附加+到您的字符类,如[a-z]+.
或使用^[a-z]+$.find()

2022-08-19