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

时间:2020-11-01  来源:正则表达式  阅读:

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

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

 代码如下

public static string Html2Text(string htmlStr)
{

if ( String .IsNullOrEmpty(htmlStr))

{

return "" ;

}

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

string regEx_script =  "<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, @"<script[^>]*?>.*?</script>", "",
    RegexOptions.IgnoreCase);
  //删除HTML
  Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"", @"