match.matches() 返回 false。这很奇怪,因为如果我使用这个正则表达式并测试字符串到 rubular.com,则会显示两个匹配项。我做错了什么?
Pattern regex = Pattern.compile("FTW(((?!ODP).)+)ODP");
Matcher match = regex.matcher("ZZZMMMJJJOOFTWZMJZMJODPZZZMMMJJJOOOFTWMZJOMZJOMZJOODPZZZMMMJJJOO");
if (match.matches()) {
System.out.println("match found");
}
else {
System.out.println("match not found");
}
最佳答案
Matcher.matches
返回整个区域是否与模式匹配。
尝试使用find
反而。 (当然,对于您的示例,这效果很好。)
关于Java 正则表达式不工作 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1385946/