asp.net C#过滤html标签几个函数

作者:袖梨 2022-06-25

在项目中遇到这样一个需求,需要将一段html转换为一般文本返回,万能的正则表达式来了。

正则表达式来拯救你,代码如下:

 代码如下 复制代码

public static string Html2Text(string htmlStr)
{

if ( String .IsNullOrEmpty(htmlStr))

{

return "" ;

}

string regEx_style =  "]*?>[\s\S]*?<\/style>" ;  //定义style的正则表达式

string regEx_script =  "]*?>[\s\S]*?<\/script>" ;  //定义script的正则表达式  

string regEx_html =  "<[^>]+>" ;  //定义HTML标签的正则表达式  

htmlStr =  Regex .Replace(htmlStr, regEx_style,  "" ); //删除css

htmlStr =  Regex .Replace(htmlStr, regEx_script,  "" ); //删除js

htmlStr =  Regex .Replace(htmlStr, regEx_html,  "" ); //删除html标记

htmlStr =  Regex .Replace(htmlStr,  "\s*|t|r|n" ,  "" ); //去除tab、空格、空行

htmlStr = htmlStr.Replace( " " ,  "" );

htmlStr = htmlStr.Replace( """ ,  "" ); //去除异常的引号" " "

htmlStr = htmlStr.Replace( """ ,  "" );

return htmlStr.Trim();

}


 

代码二

以下是引用片段:
  -----

 代码如下 复制代码

/**/
///  


///   去除HTML标记
///  

///   包括HTML的源码  
///   已经去除后的文字
public static string NoHTML(string Htmlstring)
{
  //删除脚本
  Htmlstring = Regex.Replace(Htmlstring, @"]*?>.*?", "",
    RegexOptions.IgnoreCase);
  //删除HTML
  Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"([rn])[s]+", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"", @"