заменить элемент в HTML-теге, охватывающем несколько строк - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть текстовый файл с html:

Blah, blah, blah

some text is here.

<div> something here

something else </body></html>

до сих пор, если теги в одной строке это работает:

textfile = open("htmlfile.txt", "r+")

text = textfile.read()

a = re.search('<div.+?<\/html>', text)

repstr = c.group(0)

text = text.replace(repstr, '', 1)

работает нормально, у меня нетвложенные теги.Но если теги на нескольких строках, как в первом примере, это не сработает!что я могу использовать для проверки нескольких строк?

1 Ответ

0 голосов
/ 08 сентября 2010

По умолчанию точка не соответствует новым строкам.Чтобы он соответствовал новым строкам, вам нужно скомпилировать регулярное выражение с флагом re.DOTALL, например:

a = re.search('<div.+?<\/html>', text, re.DOTALL)

При этом вы действительно не должныне используйте регулярные выражения для разбора HTML.

Сделайте себе одолжение и используйте синтаксический анализатор XML, такой как BeautifulSoup .

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