регулярное выражение python для разбора тегов div - PullRequest
1 голос
/ 09 октября 2009

вопрос о регулярном выражении python.

Я бы хотел сопоставить блок div как

<div class="leftTail"><ul class="hotnews">any news stuff</ul></div>

Я думал о шаблоне как

p = re.compile(r'<div\s+class=\"leftTail\">[^(div)]+</div>')

но, похоже, он не работает должным образом

другая модель

p = re.compile(r'<div\s+class=\"leftTail\">[\W|\w]+</div>')

Я получил гораздо больше, чем я думаю, он получает все до последнего тега в файле.

Спасибо за любую помощь

Ответы [ 3 ]

12 голосов
/ 09 октября 2009

Возможно, вы захотите перейти к фактическому анализатору HTML. Я предлагаю вам попробовать Beautiful Soup . Существует множество безумных способов форматирования HTML, и регулярные выражения могут работать не всегда правильно, даже если вы их правильно напишите.

4 голосов
/ 09 октября 2009

попробуйте это:

p = re.compile(r'<div\s+class=\"leftTail\">.*?</div>')
4 голосов
/ 09 октября 2009

Не используйте регулярные выражения для разбора XML или HTML. Вы никогда не сможете заставить его работать правильно для вложенных div.

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