我需要一个正则表达式来匹配所有缺少类型属性的自动关闭<input />
标记。
例如,我想找到这些:
<input size="1" />
<input name="test" />
但不是这样:
<input type="radio" />
请注意,这应适用于任何单个属性。我只是在这里使用类型作为例子。
仅供参考,我正在使用AstroGrep对1000多个.html文件进行搜索。
您可以假设该属性格式正确,带有等号和双引号。
答案 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:]]*/>
没有它,它会更加费力。