Как захватить многострочную строку, имеющую совпадение на каждой строке? - PullRequest
1 голос
/ 10 января 2020

У меня есть многострочное текстовое поле, и мне нужно проверить, соответствует ли каждая строка шаблону. Поле может выглядеть так:

1xABCD
9xDEFGHIJK
7xAJDKSLD
2xA

Шаблон такой: \dx\w.*

Количество строк от 1 до X.

Я пытался ^\d+x\w.*${1,} или \d+x\w.*\r\n{1,}

Спасибо

1 Ответ

0 голосов
/ 10 января 2020

Вы можете использовать

^\d+x\w+(?:\r?\n\d+x\w+)*$

Подробности

  • ^ - начало строки
  • \d+x\w+ - 1+ цифры, x, а затем 1+ слова (буквы, цифры или _)
  • (?:\r?\n\d+x\w+)* - группа без захвата ((?:...)), которая соответствует 0 или более (*) вхождения:
    • \r?\n - необязательный CR и символ LF
    • \d+x\w+ - 1+ цифр, x, а затем 1+ слова (буквы, цифры или * 1027) *)
  • $ - конец строки.

См. Демонстрационную версию regex (обратите внимание на текст, вставленный в regex101. com имеет LF только окончания строки).

...