C#正则表达式匹配所有锚点 - 除非他们有一定的css类

时间:2018-05-15 14:24:27

标签: c# regex regex-negation regex-lookarounds

假设我有一个包含以下锚点的字符串,以及其他内容:

<a href="foo.html" class="foo">Foo</a>
<a href="bar.html" class="excludeMe">Bar</a>
<a href="baz.html" class="baz">Baz</a>

现在我需要一个正则表达式来匹配所有没有“excludeMe”类的锚点。 除了href和class之外,锚点可以具有任意数量的属性,并且它们不一定是固定的顺序。但是具有“excludeMe”类的锚点将只有那个单独的类。 我有以下匹配所有锚点的模式:

@"(<a.*?>.*?</a>)"

现在我需要扩展它,以便与“excludeMe”类的锚点不匹配。 我尝试过使用负向前瞻来实现这一目标,但似乎我无法做到这一点。锚点之后的所有锚点,锚点或内容都不匹配。

有关如何操作的任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

结束了这种似乎可以完成工作的模式:

@"(<a(?![^>]+class=""excludeMe"").*?>.*?</a>)"