Подберите слово к слову в python - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу пересмотреть контент из списка в python,

Контент похож на:

garbage text
garbage text
Heading 1:
  important content abx
  important content xvy
  important content
  important content xyz
  important content zed
Heading 2:
 more content

Я хочу перехватить контент из "Заголовка 1" в "zed"

То, что я уже пробовал:

regex = r'Heading 1.*?zed'

, но это не работает для многострочных

1 Ответ

0 голосов
/ 12 апреля 2020

Попробуйте использовать re.findall со следующим шаблоном в режиме точка-все:

\bHeading 1:.*?(?=Heading \d+|$)

Режим точка-все гарантирует, что .*? будет совпадать между строками. Ожидание в конце остановится либо до начала следующего заголовка, либо до конца ввода, в зависимости от того, что произойдет раньше.

Пример сценария:

inp = """garbage text
garbage text
Heading 1:
  important content abx
  important content xvy
  important content
  important content xyz
  important content zed
Heading 2:
 more content"""

matches = re.findall(r'\bHeading 1:.*?(?=Heading \d+|$)', inp, flags=re.DOTALL)
print(matches[0])

Это печатает:

Heading 1:
  important content abx
  important content xvy
  important content
  important content xyz
  important content zed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...