Я пытаюсь сопоставить многострочный текст с помощью 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?