正则表达式表示在 java 中带有 的字符串


public static boolean regexPattern(String string) {
Pattern pattern = Pattern.compile("\d{2}.\d{2} \w+n");
return pattern.matcher(string).matches();
}
String value = "11:20 morningn" + "11:30 morningn";
System.out.println(filtersByRegex.regexPattern(value));

上面的方法每次都返回"false"。有人可以帮助我解决这个问题吗?

p.s.:我试图处理:[\r-],Pattern.DOTALL。

请记住.matches()尝试匹配完整的字符串(如文档所述(。但是您的正则表达式一次只匹配一行。如果要检查字符串在某个时候是否有匹配的结果,则应使用.find()。它将返回true,因为至少有一个匹配项。如果你想寻找两行具有相同的日期,你应该选择这样的模式:

Pattern pattern = Pattern.compile("\d{2}.\d{2} \w+\n\d{2}.\d{2} \w+\n");

这可以改进,但要点是这样。