用于删除html链接的正则表达式

时间:2011-09-23 16:37:20

标签: html regex

  

可能重复:
  Regular expression for parsing links from a webpage?
  RegEx match open tags except XHTML self-contained tags

我需要一个正则表达式去除html <a>标签,这里是示例:

<a href="xxxx" class="yyy" title="zzz" ...> link </a>

应转换为

 link

5 个答案:

答案 0 :(得分:12)

我认为您正在寻找:</?a(|\s+[^>]+)>

答案 1 :(得分:3)

上面给出的答案会匹配有效的html标记,例如<abbr><address><applet>,并将其错误地删除。只匹配锚标签的更好的正则表达式将是

</?a(?:(?= )[^>]*)?>

答案 2 :(得分:2)

你将不得不迭代地使用这个hackish解决方案,它甚至不可能完美地用于复杂的HTML:

<a(\s[^>]*)?>.*?(</a>)?

或者,您可以尝试使用其中一个现有HTML清理程序/解析器


HTML不是常规语言; 我们给你的任何正则表达式是'正确'。 这是不可能的。即使Jon Skeet和Chuck Norris也做不到。在我陷入愤怒之前,比如曾经做过@bobince [in]着名,我只会这样说:

使用HTML Parser。

(无论他们被称为什么。)


编辑:

如果您想“错误地”删除那些没有任何</a>的{​​{1}},请执行以下操作:

<a>

答案 3 :(得分:2)

以下是我要使用的内容:

</?a\b[^>]*>

答案 4 :(得分:1)

</?a.*?>会奏效。将其替换为''