我有一个要求,即在锚标记之间发生时,我不必匹配特定的单词。 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> </p><p> Resolving as duplicate of Test</p><p>Test test</p>
此处每个“测试”都会被选中。我想要的只是“锚标记”中不存在“测试”,也不是“锚标记”属性的一部分。
我使用的正则表达式是: (?!<a[^>]*>)(Test)(?![^<]*<\/a>)/gi
答案 0 :(得分:2)
不确定这是否能满足您的需求,但第二个捕获组应该只包含不属于锚标记的匹配。
(<a.*?<\/a>)|(test)/gi
https://regex101.com/r/rTLifk/1
但是,我强烈建议使用XML解析器或XPath。