日期:2014-05-17  浏览次数:20454 次

正则表达式去html标签
<div class="a"> 里面有标签可能也有div </div>

有没有什么办法 不管理面有什么标签 或者DIV 什么的。 我都只取从第一个div到对应的</div>结束里面的东西




------解决方案--------------------
你用正则的平衡组试试
------解决方案--------------------
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.LoadXml(s);
取xmlDoc.DocumentElement.InnerXml就是了。

最好用HtmlAgilityPack中的HtmlDocument而不是XmlDocument。
------解决方案--------------------
C# code
string test = @"<div id=""0"" >

                            0

                        </div>

                        <div id=""1"" class=""a"">

                            1

                            <div id=""2"">

                                2

                            </div>

                        </div>";
            //根据class=a来匹配
            Regex reg = new Regex(@"(?isx)<div[^>]*class=(['""]?)a\1[^>]*?>(?><div[^>]*>  (?<Open>)|</div>  (?<-Open>)|(?:(?!</?div\b).)*)*(?(Open)(?!))</div>");
            string match_str = reg.Match(test).Value;
            /*
              <div id=""1"" class=""a"">

                            1

                            <div id=""2"">

                                2

                            </div>

                        </div>
             */

------解决方案--------------------
坐等大婶,试问一下一定要用正则表达式吗?jquery不行吗?
------解决方案--------------------
C# code

    using System.Text.RegularExpressions;      //需要引用


    public string HtmlFilter(string strHtml)   //从字符串里删除HTML
    {
        Regex regex = new Regex("<[^>]*>", RegexOptions.IgnoreCase);
        string strOutput = regex.Replace(strHtml, "");
        return strOutput;
    }