【发布时间】:2018-08-10 19:24:13
【问题描述】:
我有一个 HTML 字符串,我想根据某些条件从该字符串中删除一个特定的 div 及其所有内容,我的 div 有一个特定的类,并且其中包含一些其他嵌套的 div。我曾尝试使用正则表达式,但问题是它选择了第一个 </div> 并忽略了以下内容。
string html = "<div class=\"card-set--six manual-cardset\"><div>test string</div></div>";
html = new Regex("<div class=\"card-set--six manual-cardset\">.*?</div>").Replace(html, string.Empty);
在我的情况下,它应该删除所有内容并且我应该得到一个空字符串。但是这个正则表达式返回给我</div>。
【问题讨论】:
-
不要使用正则表达式,使用专门用于此目的的库,例如 HtmlAgilityPack
-
@maccettura 我肯定想到了这一点,但问题是这实际上用于基于 .NET 的 CMS 的第 3 方,并且在其中使用第 3 方扩展和 dll 并不是很简单,所以我去了继续尝试一些正则表达式,但正如@SaniSinghHuttunen 建议的那样,正则表达式可能无法在这里完成工作。
-
你想用任何东西替换整个 div 吗?还是只有“测试字符串”?
-
@Aamir 我想我不明白为什么你不能使用 HtmlAgilityPack。我经常在 CMS 开发工作中使用它。你正在用 C# 做上面的工作,不是吗?那么为什么对可以从 Nuget 使用的包有任何限制呢? HtmlAgilityPack 是免费的...