Я заинтересован в удалении всех вхождений шаблона в строку Python, где шаблон выглядит как "start-string
бла, бла, бла end-string
". Это общая проблема, с которой я бы хотел справиться. Это та же проблема, что и Как я могу удалить часть текста из строки всякий раз, когда она начинается с & * (и заканчивается) (*, но в Python, а не Java.
Как бы я решил ту же проблему в Python?
Предположим, что строка выглядит следующим образом,
'Bla bla bla <mark asd asd asd /> bla bla bla. Yadda yadda yadda <mark alls lkja /> yadda.'
Начало блока для удаления - <mark
, а конец - />
. Поэтому я делаю следующее:
import re
mystring = "Bla bla bla <mark asd asd asd /> bla bla bla. Yadda yadda yadda <mark akls lkja /> yadda."
tags = "<mark", "/>"
re.sub('%s.*%s' % tags, '', mystring)
Мой желаемый результат -
'Bla bla bla bla bla bla. Yadda yadda yadda yadda.'
Но я получаю
'Bla bla bla yadda.'
Очевидно, что команда использует первый экземпляр начальной строки и последнее вхождение конечной строки.
Как мне сделать так, чтобы он совпадал с шаблоном дважды и выдавал желаемый результат? Это должно быть легко, но, несмотря на поиски по «регулярному выражению Python для удаления нескольких вхождений» и тому подобному, я не нашел ответа. Спасибо.