Регулярное выражение для соответствия закрывающим HTML-тегам

Я работаю над небольшим сценарием Python для очистки HTML-документов. Он работает, принимая список тегов для KEEP, а затем анализирует теги HTML-кода, которые не входят в список, который я использовал для регулярных выражений, и я смог сопоставить открывающие теги и самозакрывающиеся теги но не закрывая теги. Шаблон, который я экспериментировал с совпадающими закрывающими тегами, – </(?!a)> . Мне это кажется логичным, так почему не работает? (?!a) A (?!a) должен совпадать с чем-либо, что НЕ является привязным тегом (а не то, что «a» может быть чем угодно – это просто пример).

Изменить: AGG! Я думаю, регулярное выражение не показывалось!

3 Solutions collect form web for “Регулярное выражение для соответствия закрывающим HTML-тегам”

  1. Читать:

    • RegEx соответствуют открытым тегам, за исключением тегов XHTML
    • Можете ли вы привести несколько примеров того, почему трудно анализировать XML и HTML с помощью регулярного выражения?
  2. Покайтесь.

  3. Используйте настоящий синтаксический анализатор HTML, например BeautifulSoup .

 <TAG\b[^>]*>(.*?)</TAG> 

Соответствует парам открытия и закрытия определенного тега HTML.

 <([AZ][A-Z0-9]*)\b[^>]*>(.*?)</\1> 

Будет соответствовать парам открытия и закрытия любого HTML-тега.

См. Здесь .

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

Вместо этого используйте синтаксический анализатор XML. Попробуйте BeautifulSoup или lxml .

Interesting Posts

Есть ли модуль Python для версии 2.5, который обеспечивает нечто похожее на вызов «string» .format () в версии 2.6?

import matplotlib.pyplot дает ImportError: dlopen (…) Библиотека не загружена libpng15.15.dylib

Создать случайную выборку точек, распределенных на поверхности единичной сферы

Требует ли Python SciPy BLAS?

Проверьте, являются ли все элементы списка python False

Добавление одной и той же строки в список строк в Python

Как проверить, ссылаются ли две переменные на один и тот же объект на Python?

Как открыть папку, содержащую файлы в другой папке

Отправить / синхронизировать переменную / текст по локальной сети в Python 3

pandas: как запустить ось с мультииндексированием?

Django не отправляет сообщения об ошибках – как я могу отлаживать?

Случайные числа int64 и float64

Переместить элемент внутри списка?

Как преобразовать числа строк в целые числа в списке?

Python: передать метод как аргумент в функции

Python - лучший язык программирования в мире.