我有一個正則表達式來捕獲字符串的html標籤。它工作得很好,但我發現它不起作用的情況。正則表達式不能捕獲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」)的標籤?
提前致謝。
你有沒有考慮過使用像HtmlAgilityPack這樣的專用html解析器? – CodeCaster 2014-11-04 11:04:15
[不要用正則表達式解析HTML](http://stackoverflow.com/a/1732454/418066) – Biffen 2014-11-04 11:05:14
我知道,但這個應用程序是遺留的,我只需要修復這個正則表達式。我沒有時間去改變實施。 – placplacboom 2014-11-04 11:08:20