标签: html regex parsing regular-language
我正在尝试使用正则表达式来过滤给定字符串中的禁止HTML标记。是的我知道,我应该使用解析器,但对于这个特定的问题,这种方式更快。</ p>
这个想法是将每个标签列入白名单(例如<span>, <b>, </br>)并匹配禁用的标签。到目前为止,我想出了以下表达式:<\/?(?!(span|b|br)).\>
<span>, <b>, </br>
<\/?(?!(span|b|br)).\>
适用于<a>之类的单个字符标记,但<label>之类的内容不起作用。我非常感谢你的帮助,提前谢谢。
<a>
<label>
答案 0 :(得分:1)
/<(?!(\/?span|\/?b|\/?br)).*?>/g
答案 1 :(得分:1)
此正则表达式将获取标记,同时忽略span,br,b开始和结束标记。
如果它们包含属性,它甚至应该忽略白名单中的那些
<\/?(?!(?:span|br|b)(?: [^>]*)?>)[^>\/]*>