首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

C#使用正则替换冗余的html标签,该如何处理

2013-11-23 
C#使用正则替换冗余的html标签今需要处理编辑器内容中的html冗余标签;如标签中内容为空白或 一类的标签,需

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 = reg.Matches(str);
            }

[解决办法]
/// <summary>
    /// 去掉html标记
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    protected static string ConvertGettext(string str)
    {
        Regex regex = new Regex(@"<(\w+)>[&nbsp;\r\n\s\t]*?</\1>", RegexOptions.IgnoreCase);
  
        return regex.Replace(str, "").Replace("&nbsp;", "").Replace("\n", "").Replace("\r", "");
    }

热点排行