Python. Регулярные выражения. Открыть файл и убрать все предложения по маске
Есть файл с название "text.html"
нужно удалить все что начинаться от </a><br><p> и до /enddd <br>.
Повторять удаление, пока элементы есть. Текст между этими флагами может быть разный. И перезаписать исправленный текст обратно в файл.
Примеры:
...</a><br><p>//upload.wikimedia.org/wikipedia/commons/thumb/8/8 4/Michael Jordan Dep Of Defense/enddd <br>...
....jpg</a><br><p>//upload.wikimedia.org/wikipedia/commons/thumb/0/0d/MJ golf course/enddd <br>MJ golf ...
Ответы (2 шт):
Автор решения: RockInMyHead
→ Ссылка
Ну например так:
a = #Сюда перенаправить элементы
a1 = a.replace("</a><br><p>","")
a2 = a1.replace("/enddd <br>","")
print (a2)
Думаю можно и проще, но додумался только до этого.
Автор решения: nomnoms12
→ Ссылка
Регулярное выражение: </a><br><p>.+/enddd <br>.
Пример:
import re
with open('text.html', 'r+') as f:
lines = f.readlines()
for i in range(len(lines)):
lines[i] = re.sub(r'</a><br><p>.+/enddd <br>', '', lines[i])
f.seek(0)
f.truncate()
f.write(''.join(lines))
UPD:
Для нежадного поиска замените регулярное выражение на </a><br><p>.+?/enddd <br>.