asp.net正则匹配嵌套Html标签

废话不多说,直接代码

1、要匹配的html代码

<div class="conItem" id="footer">
    <a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
    <a id="powered" href="http://wordxxx.org/">WordPress1</a>
    <div id="copyright">
        Copyright &copy; 2001 简单生活</div>
    <div id="themeinfo">
        Theme by <a href="http://www.xxx.com/">mg12</a>.
 Valid <a href="http://xxx.xxxxxx.org/check?uri=referer">XHTML 1.1</a>
        and <a href="http://xxx.xxx.org/css-validator/">CSS 3</a>.
        <div>
            <div><span>111111</span></div>
        </div>
    </div> 
</div> 
<div>123</div>
<div class="conItem" id="footer">
    <a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
    <a id="powered" href="http://xxx.org/">WordPress2</a>
    <div id="copyright">
        Copyright &copy; 2002 简单生活</div>
    <div id="themeinfo">
        Theme by <a href="http://www.xxxxx.com/">mg12</a>.
 Valid <a href="http://xxxx.xxxxx.org/check?uri=referer">XHTML 1.1</a>
        and <a href="http://xxxx.wwwwww.org/css-validator/">CSS 3</a>.
        <div>
            <div><span>222222</span></div>
        </div>
    </div> 
</div>
<div>456</div>
<div class="conItem" id="footer">
    <a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
    <a id="powered" href="http://xxxxx.org/">WordPress3</a>
    <div id="copyright">
        Copyright &copy; 2003 简单生活</div>
    <div id="themeinfo">
        Theme by <a href="http://www.xxxxxx4.com/">mg12</a>.
 Valid <a href="http://xxx.wwwww3.org/check?uri=referer">XHTML 1.1</a>
        and <a href="http://wwwwwx.wwww3.org/css-validator/">CSS 3</a>.
    </div> 
</div>

2、正则代码

可以根据id匹配,也可以根据class匹配


        string html = “html代码”;

//Regex reg = new Regex(@"<(?<HtmlTag>[\w]+)[^>]*\sclass=(?<Quote>[""']?)conItem(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
        Regex reg = new Regex(@"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)footer(?(Quote)\k<Quote>)[""']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
        MatchCollection mc = reg.Matches(html);
        if (mc.Count > 0)
        {
            Response.Write(mc.Count.ToString());
            foreach (Match m in mc)
            {
                string strItem =  m.Value;
                Response.Write(strItem + "<br><br><br>\r\n-------------------------\r\n");
            }
        }

代码收集于网络,亲测有效!

posted @ 2018-06-13 10:30  WebApi  阅读(647)  评论(0编辑  收藏  举报
CopyRight © 博客园 WebAPI