Regex для чтения HTML-тегов - PullRequest
       12

Regex для чтения HTML-тегов

0 голосов
/ 23 февраля 2009

Я ищу регулярное выражение, которое соответствует всем используемым тегам HTML в тексте, состоящем из нескольких строк. Он должен прочитать «b», «p» и «script» в следующих строках:

<b>
<p class="normalText">
<script type="text/javascript">

Есть ли такая вещь? Начало, которое у меня есть, это то, что он должен начинаться с «<» и читать до тех пор, пока не попадет в пробел или «>», но в то же время он не должен включать начальный «<», поскольку я просто хочу сопоставить букву / само слово. Мысли? * * 1004

Ответы [ 3 ]

6 голосов
/ 23 февраля 2009

Есть много похожих вопросов по SO:

  1. Отфильтровывать теги HTML и разрешать объекты в python
  2. Regex для соответствия всем тегам HTML, кроме

    и

  3. Убрать все теги HTML, кроме ссылок

и т.д.. Общее согласие заключается в том, что лучше не использовать регулярные выражения для разбора HTML, а не делать это правильно, применяя анализатор DOM и обходя дерево DOM.

3 голосов
/ 23 февраля 2009

Практически невозможно переопределить HTML, как только вы начнете учитывать все особые случаи и искаженный HTML, которые браузеры в любом случае иногда радуют. Тем не менее, я подумал, что было бы забавно получить имена без использования групп захвата, и поэтому я представляю вам следующее решение:

(?<=<)\w+(?=[^<]*?>)

К сведению, я мало верю в то, что это вообще полезно в любом, кроме самых тривиальных случаях.

1 голос
/ 23 февраля 2009

Я не знаю, какую систему вы используете, но это можно сделать в определенной степени. Посмотрите на это онлайн-приложение на основе flex. Посмотрите опубликованные> примеры регулярных выражений XML. Вы получите представление.

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