【发布时间】:2011-04-08 18:43:25
【问题描述】:
我正在尝试使用 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?
【问题讨论】: