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中文网其他相关文章!