对于缺少特定属性的所有HTML <input />标记,需要正则表达式

时间:2010-08-12 23:21:23

标签: regex

我需要一个正则表达式来匹配所有缺少类型属性的自动关闭<input />标记。

例如,我想找到这些:

<input size="1" />
<input name="test" />

但不是这样:

<input type="radio" />

请注意,这应适用于任何单个属性。我只是在这里使用类型作为例子。

仅供参考,我正在使用AstroGrep对1000多个.html文件进行搜索。

您可以假设该属性格式正确,带有等号和双引号。

2 个答案:

答案 0 :(得分:1)

<input(?:\s+(?!type=)\w+="[^"]*")*\s*/>

如果AstroGrep的正则表达式味道不太具有异国情调,这应该可行。我无法找到它的在线参考。

答案 1 :(得分:0)

我不知道什么是AstroGrep,但如果它有负面预测,你可以做到

(?!\<input(?:[[:space:]]+[a-zA-Z0-9_]+="[^"]*")*(?:[[:space:]]+type="[^"]*"))<input(?:[[:space:]]+[a-zA-Z0-9_]+="[^"]*")*[[:space:]]*/>
没有它,它会更加费力。