C#使用正则匹配嵌套div里面的内容
用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;
}
如果直接采集<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;
}
中国· 上海
添加微信咨询
CopyRight©2009-2019 上海谷谷网络科技有限公司 All Rights Reserved. 沪ICP备11022482号-8
- top
- 在线咨询
-
添加微信咨询