C#使用正则替换冗余的html标签
今需要处理编辑器内容中的html冗余标签;
如标签中内容为空白或 一类的标签,需要清除掉,
例:<p> </p>、<p> </p>、<p></p>等都属于冗余标签,需要清理掉,当然,p也可以是div、span之类的标签,求C#使用正则处理方法,或有其他方法也可以提出来,thx ! 正则 替换 C#
[解决办法]
protected string ConvertGettext(string str)
{
Regex regex = new Regex(@"<[^/>]+>(
[解决办法]
\ \;)*</[^>]+>");
while (true)//循环替换,防止元素嵌套
{
str = regex.Replace(str, "");
if (!regex.IsMatch(str))
break;
}
return str;
}
ConvertGettext("<div> <p> </p>、<p> </p>、<p></p></div><div><span> <a> </a> </span></div><div>11111111</div>");
string str = "<div> <p> </p>、<p> </p>、<p></p></div><div><span> <a> </a> </span></div><div>11111111</div>";
Regex reg = new Regex(@"<(?<bq>[^>]+)>(
[解决办法]
\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+)>[ \r\n\s\t]*?</\1>", RegexOptions.IgnoreCase);
return regex.Replace(str, "").Replace(" ", "").Replace("\n", "").Replace("\r", "");
}