用C#采集网页的内容后,但内容中div一层嵌套一层。
如果直接采集<div>与</div>之间的内容肯定得不到我们想要的内容。
所以要获取嵌套div之间的内容才可以,也是从当前<div>开始到对应的</div>结束。
下面介绍一下使用C#使用正则匹配嵌套div里面的内容,以下函数是获取<div id="content"></div>之间的匹配嵌套div中的内容,也可以修改相应的地方,获取<div class="content1"></div>之间的内容
private string getRegHtml(string s2)
{
string result = "";
string reg = @"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)content(?(Quote)\k<Quote>)[""']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>";
MatchCollection m = Regex.Matches(s2,reg,RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
foreach (Match sub_m in m)
{
result = sub_m.Groups[1].Value;
}
return result;
}