Регулярное выражение: выберите несколько строк между словами. Notepad ++ - PullRequest
1 голос
/ 07 апреля 2020

У меня есть файл, что-то вроде yaml, и я пытаюсь выделить в блокноте ++ все строки между словом, особенно «Приложение». Я пытаюсь использовать регулярное выражение, потому что число строк и содержимое является динамическим c, и я хочу выбрать все отдельные сегменты.

Это то, что у меня есть сейчас, но это регулярное выражение выбрать из первого «Приложение» в конце файла.

^Application.*^(?!Application)

Пример файла:

Other
Application
  uuid='1234567890A'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123B'
    ....
Application
  uuid='1234567890C'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123D'
    ....
Application
  uuid='1234567890E'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123F'
    ....
Application
  uuid='1234567890G'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123H'

Группы, которые я хочу выбрать:

Application
  uuid='1234567890A'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123B'
...

1 Ответ

1 голос
/ 07 апреля 2020

Шаблон, который вы можете использовать:

(?s)^Application.*?(?=\R+Application|\z)

Детали

  • (?s) - . соответствует символам переноса строки
  • ^ - начало строки
  • Application - слово
  • .*? - любые 0+ символов, как можно меньше до самого левого вхождения
  • (?=\R+Application|\z) - либо 1+ разрывов строк (\R+) с последующим Application, либо (|) концом файла (\z).
...