这段代码我觉得应该打印出true啊~~可是怎么老是false
String patternStr = "FAIL:\\s?.*\\r?\\n";
String str = "Summary\n" +
    "SKIP: jjddf\n" +
    "PASS: lalala\n" +
    "FAIL: GOOD LUCK\n" +
    "SKIP: WHY\n";
        
Pattern p = Pattern.compile(patternStr, Pattern.MULTILINE);
Matcher m = p.matcher(str);
        
boolean result = m.matches();
        
System.out.println(result);

解决方案 »

  1.   

    matches()是查看正则是否匹配源字符串的整体,相当于在正则的首尾分别加了“^”和“$”的限制而你的例子,显然是匹配了其中的子串,而不是源字符串的整体所以这里用find()而不用matches()这些可以查看JDK的API文档
      

  2.   


    matches()是查看正则是否匹配源字符串的整体,相当于在正则的首尾分别加了“^”和“$”的限制而你的例子,显然是匹配了其中的子串,而不是源字符串的整体所以这里用find()而不用matches()
      

  3.   

    match的正则是个is关系的,find是has关系的