html中的正则表达式“不包含属性”

时间:2011-10-14 09:09:33

标签: html regex

我正在寻找一个简单的正则表达式(我认为),它将返回所有没有“name”属性的html标签,但是我的弱正则表达式技能对我没什么帮助。

伪造html标签不是问题,但“不包含”是。我根本不知道(我有,但没有一个工作)。

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

首先,您不应该使用正则表达式执行此任务。 HTML解析器肯定以您使用的任何语言存在,并且更适合于此。

现在,如果您因任何原因需要使用正则表达式,如果您的实现支持它,您可以使用negative lookahead。表达式

<\w+(?![^>]*\bname\b)

通过<\w+标识一个开始HTML标记,并且仅当字符串“name”(由word boundaries括起)未出现在下一个结束括号之前时才匹配。

使用RegExr查看此内容。

这仅适用于表现良好的HTML,并且将其扩展为尊重引用的字符串,javascript或评论将是不可能的或非常非常难看。我提到过HTML解析器了吗? =)