Как сопоставить все символы, включая новые строки между двумя словами, используя регулярное выражение в python? - PullRequest
1 голос
/ 22 сентября 2019

например, у меня есть что-то вроде:

OLD

WHO IS THIS

END?

On Sun, 22 Sep 2019 at 23:57,

Я бы хотел охватить все с самого начала до \n\nOn Sun,
, поэтому мой ожидаемый результат будет:

OLD

WHO IS THIS

END?

Я попытался сделать следующий шаблон: ^(.*)\n\nOn .* wrote:, который работает, только если нужный мне текст не содержит новых строк.Буду очень признателен за любую помощь.Благодаря.

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

Нет необходимости в Regex, попробуйте это:

text = """
OLD

WHO IS THIS

END?

On Sun, 22 Sep 2019 at 23:57,
"""

text = '\n'.join(line for line in text.split('\n') if line.startswith('On Sun'))
print(text)

Вывод:

OLD

WHO IS THIS

END?
0 голосов
/ 22 сентября 2019

Прямой перевод будет

^OLD.+?(?=^On Sun)

См. демонстрацию на regex101.com (обратите внимание на много- и однолинейные флаги).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...