Регулярные выражения и перевод строки в Java

205
09 января 2019, 09:50

Задача извлечь то, что находится на месте "body" между "begin" и "end" в приведенном ниже коде, но никак не могу понять как составить регулярное выражение, что бы оно учитывало переводы строк? В моем примере перевод строки один, но он может так же встречаться и перед "секцией" end и их может быть много и выше и ниже "body"

public class Appl {
public static void main(String[]    args) {
    String  source = "begin " +
            "\n"+
            " body end";
    Pattern p = Pattern.compile("begin(.*?)end");
    Matcher m = p.matcher(source);
    while (m.find()) {
        System.out.println(m.group(1));
    }
  }
}

upd: Pattern.DOTALL решает мою задачу!

Pattern p = Pattern.compile("begin(.*?)end", Pattern.DOTALL);
Answer 1
Pattern p = Pattern.compile("begin(.*?)end", Pattern.DOTALL);
READ ALSO
Что значит строка int guess = -1?

Что значит строка int guess = -1?

Вот мой код, взял с одной книги:

183
Идея для Java-проекта [закрыт]

Идея для Java-проекта [закрыт]

У меня есть команда из 4 участников и один менторНам нужен проект, который будет затрагивать темы (желательно все):

184