Мне нужно регулярное выражение для соответствия 2 группам: успех (начало текстового блока) и все последующие, до следующего образца текста успеха с 3 блоками успеха:
Success blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla
Success blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla
blablabla
blablabla blablabla
Success blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla
Это регулярное выражение останавливает блок до первого \n
:
(Success|Error|Critical|Warning)\s{8}((.*|\n*?|\r*?|[\r\n]*?)*)
1
Marco
8 Окт 2019 в 15:43
1 ответ
Лучший ответ
Один из многих возможных вариантов (с включенными multiline
, verbose
и singleline
):
^(Success|Error|Critical|Warning)
.+?
(?=^(?:Success|Error|Critical|Warning)|\Z)
См. демонстрацию на regex101.com .
0
Jan
8 Окт 2019 в 12:53
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки, синтаксического анализа и преобразования строк. Поскольку регулярные выражения не полностью стандартизированы, все вопросы с этим тегом должны также включать тег, определяющий применимый язык программирования или инструмент.