Как найти текст с переносами строк между двумя маркерами

Текст может быть любой. Например

>>
текст текст
ds aihdO#U$(20
<<

Надо удалить всё что между >> и << включая сами маркеры. Я пытался с этим регулярным выражением: >>((.|\n)+?)<<, но у меня получилось <re.Match object; span=(67, 206), match='Что сделать потом: Комментарии [СДЕЛАНО 2> (даже без закрывающей кавычки)

Сам текст:

>> Что сделать потом:
Комментарии [СДЕЛАНО 2/2 (90%) Нужно исправить комментарии]
Переменные [СДЕЛАНО 0%]
Input [СДЕЛАНО 0%] <<

Ответы (1 шт):

Автор решения: Alexander Mashin
  • Вы можете упростить регулярное выражение до >>.*?<<, но используйте опцию s,
  • чтобы убедиться, что захватывается всё, что надо, выводите .group() — это весь захват.
import re
text = r'''
>> Что сделать потом:
Комментарии [СДЕЛАНО 2/2 (90%) Нужно исправить комментарии]
Переменные [СДЕЛАНО 0%]
Input [СДЕЛАНО 0%] <<
'''

pattern = r'>>.*?<<'

for match in re.finditer (pattern, text, re.S):
    print (match.group())
→ Ссылка