首页 >Java >java教程 >为什么 `String.matches()` 不能按正则表达式的预期工作?

为什么 `String.matches()` 不能按正则表达式的预期工作?

Linda Hamilton
Linda Hamilton原创
2024-11-26 05:18:10403浏览

Why Doesn't `String.matches()` Work as Expected with Regular Expressions?

String.matches() 与预期的正则表达式不匹配

尝试使用 String.matches("[a-z" 匹配特定模式时]"),令人惊讶地发现它没有按预期工作,即使字符串包含小写字母

说明:

Java 中的 String.matches() 方法旨在确定整个输入字符串是否与提供的正则表达式匹配。在本例中,表达式“[a-z]”尝试匹配单个小写字母。但是,代码会检查words数组中的每个字符串,其中没有一个以小写字母开头。

解决方案:

要匹配字符串中的模式,需要一个应该使用 Pattern 和 Matcher 类。 Pattern 类将正则表达式编译为 Matcher 对象,然后可用于检查输入字符串中的匹配项。

以下是使用 Pattern 和 Matcher 查找匹配项的代码的修改版本:

Pattern p = Pattern.compile("[a-z]+");
for(String s:words)
{
    Matcher m = p.matcher(s);
    if (m.find())
    {
        System.out.println(s);
    }
}

此代码现在可以正确打印“dkoe”。

以上是为什么 `String.matches()` 不能按正则表达式的预期工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn