我正在尝试编写一个正则表达式来去除所有 HTML,链接除外(分别为 <a href
和 </a>
标签。它不必 100% 安全(我不担心注入(inject)攻击或我正在解析已经批准并发布到 SWF 电影中的内容)。
我使用的原始“剥离标签”正则表达式是 <(.|\n)+?>
, 我尝试将其修改为 <([^a]|\n)+?>
,但这当然会允许任何包含 a 的标签,而不是开头带有空格的标签。
并不是说这真的很重要,但以防万一有人想知道我在 ActionScript 3.0 中写这篇文章对于 Flash电影。
最佳答案
<(?!\/?a(?=>|\s.*>))\/?.*?>
试试这个。对 p 标签有类似的东西。为他们工作所以不明白为什么不。使用否定前瞻来检查它是否不匹配(以可选/字符为前缀),其中(使用正前瞻)a(带有可选/前缀)后跟 > 或空格,然后是 >。然后匹配直到下一个 > 字符。把它放在
的替代中s/<(?!\/?a(?=>|\s.*>))\/?.*?>//g;
这应该只留下开始和结束标签
关于html - 去除除链接之外的所有 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44078/