Регулярное выражение не соответствует новой строке, полученной из объекта Formatter

Я не могу сопоставить строку, содержащую новые строки, когда новая строка получается с использованием %nв объекте Formatterили String.format(). Пожалуйста, взгляните на следующую программу:

public class RegExTest {

  public static void main(String[] args) {
    String input1 = String.format("Hallo\nnext line");
    String input2 = String.format("Hallo%nnext line");
    String pattern = ".*[\n\r].*";
    System.out.println(input1+": "+input1.matches(pattern));
    System.out.println(input2+": "+input2.matches(pattern));
  }

}

и его вывод:

Hallo
next line: true
Hallo
next line: false

Что здесь происходит?Почему вторая строка не совпадает?

Версия Java 1.6.0 _21.

18
задан Karl Richter 6 August 2016 в 22:36
поделиться