正则表达式与html锚标记

时间:2017-05-05 17:50:32

标签: regex regex-negation regex-lookarounds

我有一个要求,即在锚标记之间发生时,我不必匹配特定的单词。 Anchor标签可以嵌套其他html标签。

例如:

    <a title="Test" href="http://www.google.com/"><span style="color: blue;">Test</span></a><p>Test - MANUALLY<br /><br /><a href="http://www.google.com">Google</a>&nbsp;</p><p> Resolving as duplicate of Test</p><p>Test  test</p>

此处每个“测试”都会被选中。我想要的只是“锚标记”中不存在“测试”,也不是“锚标记”属性的一部分。

我使用的正则表达式是:

    (?!<a[^>]*>)(Test)(?![^<]*<\/a>)/gi

1 个答案:

答案 0 :(得分:2)

不确定这是否能满足您的需求,但第二个捕获组应该只包含不属于锚标记的匹配。

(<a.*?<\/a>)|(test)/gi

https://regex101.com/r/rTLifk/1

但是,我强烈建议使用XML解析器或XPath。