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");
这可以改进,但要点是这样。