解决方案 »

  1.   

    你还是贴一点实际代码吧。不知道你的id = 数字,这个是在<div class="begin ....>中间,还是在<div class="begin...>之后的某个位置出现的。
    贴原始,实际的字符串看看吧。
      

  2.   

    测试用的VB,所以字符串里是两个双引号连在一块的。。Dim STR As String = "<div id=""content""><div class=""begin1st content"" id=""1"" nn=""gn""><a href=""http://xxx"" target=""_blank"">xxx</a><div class=""inner"">xxx</div></div><div class=""begin2st content"" id=""2"" nn=""dn""><a href=""http://xxx"" target=""_blank"">xxx</a></div><div class=""begin abstract"" id=""3"" nn=""dn""><div class=""add""></div>xxx</div><div class=""begin-ext"" id=""4""><div class=""add""></div><a href=""http://xxx"" target=""_blank"">xxx</a></div><div class=""begin abstract"" id=""5"" nn=""gn"">xxx</div></div>"       Dim strRegex As String = "正则不会写" '网上实例参考 <div.*\sid=.*[^>]*>[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>
          
            Dim r As System.Text.RegularExpressions.Regex
            Dim m As System.Text.RegularExpressions.MatchCollection
            r = New System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase)        m = r.Matches(STR)
            Dim i As Integer        For i = 0 To m.Count - 1
                Response.Write(m(i).Value.ToString + "<br>")
            Next
      

  3.   

    源字符串,给你分行了,容易观察。<div id="content">
    <div class="begin1st content" id="1" nn="gn">
    <a href="http://xxx" target="_blank">xxx</a>
    <div class="inner">xxx</div>
    </div>
    <div class="begin2st content" id="2" nn="dn">
    <a href="http://xxx" target="_blank">xxx</a>
    </div>
    <div class="begin abstract" id="3" nn="dn">
    <div class="add">
    </div>
    xxx
    </div>
    <div class="begin-ext" id="4">
    <div class="add"></div>
    <a href="http://xxx" target="_blank">xxx</a>
    </div>
    <div class="begin abstract" id="5" nn="gn">xxx</div>
    </div>
    正则
    (?is)<div class="begin[^>]*>((?<o><div[^>]*>)|(?<-o></div>)|(?!</?div>).)+(?(o)(?!))</div>
      

  4.   

    这需要用到平衡组(?is)<div class="begin[^>]*?id="\d+"[^>]*?>(?><div[^>]*>(?<o>)|</div>(?<-o>)|(?:(?!</?div\b).)*)*(?(o)(?!))</div>
      

  5.   


    非常感谢boss_george,同时也谢谢版主