C# .Net使用正则表达式去除HTML标记和空格

转载 2012年02月24日 11:25:26
 

using System.Text.RegularExpressions;

在进行数据采集,显示文章摘要,内容计数等情况下,需要清除源代码中的html标签,空格,style,script等标签.
注意下面代码的执行顺序:
1.styleReg:清除样式.如<style>.class{}</style>.全部替换为空.
2.scriptReg和styleReg同样的道理.
3.htmlReg :清除html标签的.输入为<div>aaa</div>,结果为:aaa
4.htmlSpaceReg :html空格&nbsp;替换为空格
5.spaceReg :把一个以上的空格替换为一个空格

 

        //移除HTML标记
        public string RemoveHtml(string src)
        {
            Regex htmlReg = new Regex(@"<[^>]+>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            Regex htmlSpaceReg = new Regex("\\ \\;", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            Regex spaceReg = new Regex("\\s{2,}|\\ \\;", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            Regex styleReg = new Regex(@"<style(.*?)</style>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            Regex scriptReg = new Regex(@"<script(.*?)</script>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            src = styleReg.Replace(src, string.Empty);
            src = scriptReg.Replace(src, string.Empty);
            src = htmlReg.Replace(src, string.Empty);
            src = htmlSpaceReg.Replace(src, " ");
            src = spaceReg.Replace(src, " ");
            return src.Trim();
        }

 

想去掉除段落标记之外的所有html标记,只要页面的文字,好比是把代码贴到记事本的效果:

        public static string DelHTML(string Htmlstring)//将HTML去除
        {

            #region
            //删除脚本
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

            //删除HTML
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"-->", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"<!--.*", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            //Htmlstring =System.Text.RegularExpressions. Regex.Replace(Htmlstring,@"<A>.*</A>","");
            //Htmlstring =System.Text.RegularExpressions. Regex.Replace(Htmlstring,@"<[a-zA-Z]*=\.[a-zA-Z]*\?[a-zA-Z]+=\d&\w=%[a-zA-Z]*|[A-Z0-9]","");
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(amp|#38);", "&", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(lt|#60);", "<", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(gt|#62);", ">", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"&#(\d+);", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            Htmlstring.Replace("<", "");
            Htmlstring.Replace(">", "");
            Htmlstring.Replace("\r\n", "");
            //Htmlstring=HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
            #endregion

            return Htmlstring;

        }



 

&nbsp;和空格区别及去除区别

1、html中提供了6中空格,分别为 &ensp;&emsp;&thinsp;&zwnj;&zwj; 具体区别看参考:http://www.cnblogs.com/chenshihaook...
  • xuexizhe88
  • xuexizhe88
  • 2017年02月16日 16:13
  • 1676

asp.net中去除字符串中的所有空格字符

方法一、最常用的就是Replace函数      string str = "str=1 3 45. 7 8 9 0 5"; Response.Write(str.Repl...
  • taomanman
  • taomanman
  • 2011年08月17日 15:26
  • 4023

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

C# 替换去除HTML标记方法(正则表达式)
  • sgear
  • sgear
  • 2011年03月21日 08:40
  • 4062

去除文字里的html标签的C#方法

/// /// 清除文本中Html的标签 /// /// /// protected string ClearH...
  • hougelou
  • hougelou
  • 2012年08月23日 18:07
  • 8038

.NET(C#)用正则表达式清除HTML标签(包括script和style),保留纯本文

如今是互联网时代,随时随刻都在接触网页数据。那么对于.NET的开发人员来说,处理网页源码就是有时候就不能避免了。今天给大家分享.NET用正则表达式清除HTML标签的通用方法。使其保留网页源码中的纯文本...
  • my98800
  • my98800
  • 2016年10月25日 08:36
  • 1597

去除C#HTML标签

  • 2010年03月02日 09:54
  • 2KB
  • 下载

用C#去除字符串中HTML的格式(清除数据库中html标签)

public static string DelHTML(string Htmlstring)//将HTML去除         {                   #region        ...
  • savagelin
  • savagelin
  • 2011年07月14日 10:22
  • 3455

C#去除HTML标签

public static string ReplaceHtmlTag(string html, int length = 0) { string strText = System.Text....
  • lishimin1012
  • lishimin1012
  • 2017年12月03日 21:24
  • 50

C#将内容附带的html标签去掉转成纯文本方法

将内容附带的html标签去掉转成纯文本方法,.net后台在接收或者获取html整段内容时候,可以调用此方法将内容中的html标签过滤掉,转换成纯文本...
  • wangliuran
  • wangliuran
  • 2016年03月05日 15:49
  • 2464

正则表达式清除空格和html标签中的&nbsp;空格

假设页面中有一个标签:  class="titlename"> 品  牌 : 日产/尼桑/Nissan //原型(对比) -->  品  ...
  • XPY567
  • XPY567
  • 2015年11月10日 10:42
  • 7684
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# .Net使用正则表达式去除HTML标记和空格
举报原因:
原因补充:

(最多只允许输入30个字)