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

C#使用正则替换冗余的html标签
今需要处理编辑器内容中的html冗余标签;
如标签中内容为空白或 一类的标签,需要清除掉,
例:<p>        </p>、<p>&nbsp;&nbsp;</p>、<p></p>等都属于冗余标签,需要清理掉,当然,p也可以是div、span之类的标签,求C#使用正则处理方法,或有其他方法也可以提出来,thx !
正则 替换 C#

------解决方案--------------------


    protected string ConvertGettext(string str)
    {
        Regex regex = new Regex(@"<[^/>]+>( 
------解决方案--------------------
\&nbsp\;)*</[^>]+>");
        while (true)//循环替换,防止元素嵌套
        {
            str = regex.Replace(str, "");
            if (!regex.IsMatch(str))
                break;
        }
        return str;
    }
ConvertGettext("<div> <p>        </p>、<p>&nbsp;&nbsp;</p>、<p></p></div><div><span> <a>  </a>  </span></div><div>11111111</div>");

------解决方案--------------------
            string str = "<div> <p>        </p>、<p>&nbsp;&nbsp;</p>、<p></p></div><div><span> <a>  </a>  </span></div><div>11111111</div>";
            Regex reg = new Regex(@"<(?<bq>[^>]+)>(&nbsp;
------解决方案--------------------
\s)*</\k'bq'>");

            MatchCollection mc = reg.Matches(str);

            while (mc.Count > 0)
            {
                foreach (Match m in mc)
                {
                    str = str.Replace(m.Value, "");
                }
                mc =&n