C#使用正则匹配嵌套div里面的内容

开发技术 2016/5/15

用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;
}

中国· 上海

谷谷二维码
添加微信咨询

CopyRight©2009-2019 上海谷谷网络科技有限公司 All Rights Reserved. 沪ICP备11022482号-8  

关于我们 | 联系我们