C#:正则表达式如何匹配特定的div close标签,但最后一个关闭标签?

时间:2016-03-05 05:53:56

标签: c# regex

例如:

<div id="outer">
    <div id="a">
        <div class="b"> 11111111111</div>
        <div class="b"> 22222222222222</div>
    </div>
</div>

现在我想匹配id为a的元素,并将其替换为空,但我发现我不能,因为id="a"不是外部div。 这是我的c#代码,它将匹配最后一个 标记。

Regex regex = new Regex(@"<div id=""a([\s\S]*) (<\/[div]>+)");

1 个答案:

答案 0 :(得分:1)

试试这个:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var divs = doc.DocumentNode.Descendants().Where(x => x.Name == "div" && x.Id == "a");

foreach (var div in divs.ToArray())
{
    div.InnerHtml = "";
}

var result = doc.DocumentNode.OuterHtml;

我得到的result是:

<div id="outer">
    <div id="a"></div>
</div>