正则表达式获取没有属性的HTML按钮和锚标签

时间:2016-04-26 16:38:33

标签: html regex

我正在尝试编写一个正则表达式,它会列出HTML文档中没有button属性的所有anchoranalytics-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

哪个匹配多行的buttonanchor标记,但不查找analytics-on的缺席情况如何查看?

1 个答案:

答案 0 :(得分:1)

正如评论中已经建议的那样,你绝对应该使用HTML解析器。

但是,如果您只想了解有多少按钮/锚点没有这个属性,以便进行技术分析,修饰等,您可以只使用此正则表达式一次,然后再使用HTML解析器:

<(button|a)(?!([^>]*?)analytics-on)(?:[^>]*?)>(?:[^<]*)<\/(button|a)>

工作样本here