Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式与内部html锚标记不匹配_Regex_Regex Negation_Regex Lookarounds - Fatal编程技术网

Regex 正则表达式与内部html锚标记不匹配

Regex 正则表达式与内部html锚标记不匹配,regex,regex-negation,regex-lookarounds,Regex,Regex Negation,Regex Lookarounds,我有一个要求,当in出现在锚标记之间时,我不必匹配特定的单词。锚定标记可以嵌套其他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"

我有一个要求,当in出现在锚标记之间时,我不必匹配特定的单词。锚定标记可以嵌套其他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

(?!]*>)(测试)(?![^不确定这是否能满足您的需要,但第二个捕获组应仅包括不属于锚定标记的匹配项

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


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

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

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


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

您需要某种SAX解析器来知道打开的锚标记何时开始。首先检查文本内容以查找您想要查找的内容。当您获得打开的锚标记时,忽略涌入的文本内容。等待关闭锚标记,然后继续搜索包含这些内容的文本内容mes在。什么编程语言?@revo我正在使用C#。你需要某种SAX解析器才能知道打开的锚标记何时开始。首先检查文本内容以查找你想要的内容。当你得到打开的锚标记时,忽略涌入的文本内容。等待关闭锚标记,然后继续搜索进入的文本内容。什么程序ng语言?@revo我正在使用C。