有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中带\n的字符串的正则表达式

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 morning\n" + "11:30 morning\n";
System.out.println(filtersByRegex.regexPattern(value));

上述方法每次都返回“false”。有人能帮我修一下吗

附言:我试着处理:[\r-\n]模式。多托


共 (1) 个答案

  1. # 1 楼答案

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

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

    这是可以改进的,但要点是