`

C# 替换去除HTML标记方法(正则表达式)

    博客分类:
  • C#
阅读更多
using System.Text.RegularExpressions;     //包含正则表达式

     public static string NoHTML(string Htmlstring) //去除HTML标记
      {
          //删除脚本
          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, @"<!--.*", "", RegexOptions.IgnoreCase);

          Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
          Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);

          Htmlstring.Replace("<", "");
          Htmlstring.Replace(">", "");
          Htmlstring.Replace("\r\n", "");
          Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

          return Htmlstring;
      }

 示例:

  /// <summary>
        /// 将所有HTML标签替换成""
        /// </summary>
        /// <param name="strHtml"></param>
        /// <returns></returns>
        public static string StripHTML(string strHtml)
        {
            string[] aryReg ={
       @"<script[^>]*?>.*?</script>",
       @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(file://[""'tbnr]|[^/7])*?/7|/w+)|.{0})|/s)*?(///s*)?>",
       @"([\r\n])[\s]+",
       @"&(quot|#34);",
       @"&(amp|#38);",
       @"&(lt|#60);",
       @"&(gt|#62);", 
       @"&(nbsp|#160);", 
       @"&(iexcl|#161);",
       @"&(cent|#162);",
       @"&(pound|#163);",
       @"&(copy|#169);",
       @"&#(\d+);",
       @"-->",
       @"<!--.*\n"
      
      };

            string[] aryRep = {
        "",
        "",
        "",
        "\"",
        "&",
        "<",
        ">",
        " ",
        "\xa1",//chr(161),
        "\xa2",//chr(162),
        "\xa3",//chr(163),
        "\xa9",//chr(169),
        "",
        "\r\n",
        ""
       };

            string newReg = aryReg[0];
            string strOutput = strHtml;
            for (int i = 0; i < aryReg.Length; i++)
            {
                Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase);
                strOutput = regex.Replace(strOutput, aryRep[i]);
            }

            strOutput.Replace("<", "");
            strOutput.Replace(">", "");
            strOutput.Replace("\r\n", "");


            return strOutput;
        }

 

 

分享到:
评论

相关推荐

    常用正则表达式大全

    正则表达式是编程语言中用于模式匹配的强大工具,它能帮助我们高效地处理文本,进行数据验证、搜索和替换等任务。以下是一些常见的正则表达式模式及其用途: 1. 匹配中文字符:[u4e00-u9fa5] - 这个表达式用于匹配...

    asp.net'常用正则表达式

    正则表达式是文本处理领域的一种强大工具,尤其在编程语言中,如C#,它被广泛应用于数据验证、字符串搜索与替换等场景。本文将详细介绍在ASP.NET中常用的正则表达式,帮助开发者理解和掌握如何使用这些表达式来解决...

    正则表达式

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    c# 正则表达式对网页进行有效内容抽取

    在给出的部分内容中,首先介绍了通过正则表达式去除HTML文本中不同类型标记的基本方法。例如,通过正则表达式去除了HTML文档中的注释、script脚本、style样式以及其他所有HTML标签。 1. 去除注释的正则表达式使用了...

    c# 正则表达式对网页进行内容抓取_.docx

    在C#中,正则表达式是一个强大的工具,常用于数据处理、文本分析以及像网页内容抓取这样的任务。在上述文档中,我们看到如何利用正则表达式去除HTML文本中的特定部分,以便提取出纯文本内容。以下是关键知识点的详细...

    c#里去掉html标记

    在C#中去除HTML标记通常涉及到正则表达式的使用。通过一系列预定义的正则表达式模式来匹配并替换HTML标签及其特殊字符,最终得到不含任何HTML元素的纯文本。下面是一个具体的示例代码: ```csharp using System; ...

    C#正则过滤HTML标签并保留指定标签的方法

    第二个方法则更加直接,它利用了两个正则表达式来直接替换掉不需要的标签: 1. 第一个正则表达式用于匹配并替换掉span标签。 2. 第二个正则表达式用于移除所有其他非保留的HTML标签。 这显示了正则表达式在处理字符...

    C#正则表达式的递归匹配分析

    在C#编程中,正则表达式是一种强大的文本处理工具,尤其在处理复杂字符串匹配时。本文主要聚焦于C#正则表达式的递归匹配,这对于解析嵌套结构的数据非常有用,例如匹配嵌套的括号。在C#中,虽然不直接支持`(?R)`这样...

    HtmlDome.rar

    HTML是超文本标记语言,是构建网页的基础,而正则表达式是一种强大的文本处理工具,常用于匹配、查找、替换等操作。在这个“HtmlDome.rar”压缩包中,我们聚焦于如何使用C#编程语言,结合正则表达式来提取HTML页面中...

    C#获取HTML中的文本信息

    总的来说,C#获取HTML中的文本信息可以通过基础的字符串操作、正则表达式或者使用特定的库如HtmlAgilityPack来实现。选择哪种方法取决于你的具体需求,包括HTML的复杂程度、性能要求以及对错误处理的需求。对于初学...

    oracle 10g 新特性

    - **功能**:用于替换一个字符串中匹配指定正则表达式的子串。 - **示例**:`SELECT REGEXP_REPLACE('aabbcc', '(.*)(.*)(.*)', '3,2,1') FROM dual`。此查询将返回"cc,bb,aa"。 #### 三、特殊字符与操作符 - `^`...

    editplus 代码编辑器html c++ jsp css

    这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下 解决: 在替换对话框中,启用“正则表达式”复选框 在查找内容里面输入...

    EditPlus 2整理信箱的工具

    【1】 正则表达式应用——替换指定内容到行尾 【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF 【3】 正则表达式应用——删除每一行行尾的指定字符 【4】 正则表达式应用...

    Editplus 3[1].0

    这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下 解决: 在替换对话框中,启用“正则表达式”复选框 在查找内容里面输入...

    C# 敏感词过滤类 避让词汇中的特殊字符

    3. 正则表达式处理:去除词汇间的特殊字符。 4. 模式匹配:将清理后的词汇与敏感词库进行匹配。 5. 处理匹配结果:如果发现敏感词,可以标记、替换或者直接过滤掉。 在这个过程中,为了提高效率,可以使用数据结构...

Global site tag (gtag.js) - Google Analytics