Как включить символ конца строки ("\ n") в регулярное выражение - PullRequest
0 голосов
/ 08 декабря 2011

у меня есть регулярное выражение, которое должно охватывать несколько строк (удалить комментарии из файла паскаля)

\(\*.*?\*\)|\{.*?\}|\/\/(.*$)

это работает почти нормально, но

\(\*.*?\*\)

и

\{.*?\}

должны работать для мультилиней, но работать только для одиночных. Как заставить их работать правильно (и не делать

// (. * $)

работа для нескольких строк)

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Это будет соответствовать буквально всем, включая переводы строк:

Pattern regex = Pattern.compile("[\\s\\S]*");
1 голос
/ 08 декабря 2011

Вы ищете флаг Pattern.DOTALL. Передайте его Pattern.compile примерно так:

Pattern p = Pattern.compile("regex", Pattern.DOTALL); 

Вы также можете установить его в регулярном выражении с помощью (?s), например: "(?s)regex"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...