У меня есть регулярное выражение для захвата html-тегов из строки. Он работает очень хорошо, но я нашел случай, что он не работает.Regex не работает для захвата html-тегов
Когда у меня есть тег, за которым следует атрибут «data-xxxx-xxxx», тег игнорируется. Если я переместил один и тот же атрибут в последнюю позицию, он будет работать. Если я удалю слово «-» из слова, оно работает.
В моем регулярном выражении чего-то не хватает, но я не могу найти решение для его исправления.
Вот пример, который работает:
<td>Go? <a href="$VAR" target="_blank" data-link-category="cat"
data-link-name="bla">Click</a></td>
<td>Go? <a datalinkcategory="cat" href="$VAR" target="_blank"
data-link-name="bla">Click</a></td>
пример, который не работает:
<td>Go? <a data-link-category="cat" href="$VAR" target="_blank"
data-link-name="bla">Click</a></td>
И мое регулярное выражение:
Regex htmlRegex = new Regex(
@"(<!--)|(-->)|(<\s?/?\w+((\s+\w+(\s*=\s*(?:""(.|\s)*?""|'(.|\s)*?'|[^'"">\s]+))?)+\s*|\s*)/?>)");
Как я могу изменить регулярное выражение для соответствия меток, содержащих атрибуты типа «data-xxxx-xxxx» в начале инструкции?
Благодарим заранее.
Рассматривали ли вы использование выделенного анализатора html, такого как HtmlAgilityPack? – CodeCaster
[Не разбирайте HTML с регулярным выражением!] (Http://stackoverflow.com/a/1732454/418066) – Biffen
Я знаю об этом, но это приложение устарело, и мне просто нужно исправить это регулярное выражение. У меня нет времени для изменения реализации. – placplacboom