我正在尝试使用Java匹配多行文本。当我将Pattern
类与Pattern.MULTILINE
修饰符一起使用时,我可以匹配,但不能(?m).
使用(?m)
和使用相同的模式String.matches
似乎无效。
我确定我缺少什么,但不知道是什么。正则表达式不是很好。
这就是我尝试过的
String test = "User Comments: This is \t a\ta \n test \n\n message \n";
String pattern1 = "User Comments: (\\W)*(\\S)*";
Pattern p = Pattern.compile(pattern1, Pattern.MULTILINE);
System.out.println(p.matcher(test).find()); //true
String pattern2 = "(?m)User Comments: (\\W)*(\\S)*";
System.out.println(test.matches(pattern2)); //false - why?