正则表达式读出HTML标签

时间:2009-02-23 08:55:06

标签: html regex tags

我正在寻找一个正则表达式,该正则表达式匹配包含多行的文本中所有使用过的HTML标记。它应该在以下行中读出“b”,“p”和“script”:

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

有这样的事吗?我的开始是它应该以“&lt;”开头并阅读,直到它到达一个空格或“&gt;”,但同时,它不应包括起始“&lt;”因为我只想匹配字母/单词本身。想法?

3 个答案:

答案 0 :(得分:6)

关于SO有许多类似的问题:

  1. Filter out HTML tags and resolve entities in python
  2. Regex to match all HTML tags except <p> and </p>
  3. Strip all HTML tags except links
  4. 等。一般的协议是,最好不要使用正则表达式来解析HTML,而不是通过应用DOM解析器和遍历DOM树来正确地执行它。

答案 1 :(得分:3)

一旦你开始考虑浏览器有时很乐意解析的所有特殊情况和格式错误的HTML,几乎不可能使用正则表达式HTML。尽管如此,我认为在不使用捕获组的情况下获取名称可能会很有趣,因此我也提供了以下解决方案:

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

对于记录,我几乎没有信心,除了最微不足道的情况之外,它几乎没用。

答案 2 :(得分:1)

我不知道您使用的系统,但可以在一定程度上完成。查看this在线基于flex的应用程序。查看已发布的&gt; XML正则表达式示例。你会有一个想法。