C # регулярное выражение, чтобы соответствовать всем якорям - если у них нет определенного класса CSS - PullRequest
0 голосов
/ 15 мая 2018

Предположим, у меня есть строка, содержащая следующие якоря, среди прочего:

<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 голосов
/ 16 мая 2018

Закончено этим шаблоном, который, кажется, делает работу:

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