我正在尝试编写一个正则表达式,它会列出HTML文档中没有button
属性的所有anchor
和analytics-on
标记。
我有两种测试情况:
<button class="btn"
ng-click="doSomething()">Do something without analytics</button>
并且
<button class="btn"
ng-click="doSomething()"
analytics-on analytics-event="Did something" analytics-category="Category">Do something with analytics</button>
第一个应该匹配,但第二个不应该,因为它有分析标记。
到目前为止,我有:
/<(button|a)([^>]*)>/s
哪个匹配多行的button
或anchor
标记,但不查找analytics-on
的缺席情况如何查看?
答案 0 :(得分:1)
正如评论中已经建议的那样,你绝对应该使用HTML解析器。
但是,如果您只想了解有多少按钮/锚点没有这个属性,以便进行技术分析,修饰等,您可以只使用此正则表达式一次,然后再使用HTML解析器:
<(button|a)(?!([^>]*?)analytics-on)(?:[^>]*?)>(?:[^<]*)<\/(button|a)>
工作样本here。