[转]正则表达式,去除所有HTML标签

protected string str = "<table><tr><td>sdasasdsdd</td></tr></table><br><p>sds</p><img id=‘img1‘ src=‘http://www.baidu.com/img/baidu_logo.gif‘ width=‘100‘ height=‘50‘ alt=‘‘>aaassss<br><img src=‘http://www.baidu.com/img/baidu_logo.gif‘ width=‘100‘ height=‘50‘ alt=‘‘> 说是道 ";
    protected void Page_Load(object sender, EventArgs e)
     {

        //string regexstr = @"<[^>]*>";    //去除所有的标签

        //@"<script[^>]*?>.*?</script>" //去除所有脚本,中间部分也删除

         // string regexstr = @"<img[^>]*>";   //去除图片的正则

       // string regexstr = @"<(?!br).*?>";   //去除所有标签,只剩br

        // string regexstr = @"<table[^>]*?>.*?</table>";   //去除table里面的所有内容

        string regexstr = @"<(?!img|br|p|/p).*?>";   //去除所有标签,只剩img,br,p

         str = Regex.Replace(str, regexstr, string.Empty, RegexOptions.IgnoreCase);

    }

ASP.NET 去除所有HTML标记 < type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!=‘None‘?d.selection.createRange().text:‘‘):(d.getSelection?d.getSelection():‘‘);void(keyit=window.open(‘http://www.365key.com/storeit.aspx?t=‘+escape(d.title)+‘&u=‘+escape(d.location.href)+‘&c=‘+escape(t),‘keyit‘,‘scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes‘));keyit.focus();}
注意:需要先using  System.Text.RegularExpressions;

/**////   <summary>
   ///   去除HTML标记
   ///   </summary>
   ///   <param   name="NoHTML">包括HTML的源码   </param>
   ///   <returns>已经去除后的文字</returns>
   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,@"<!--.*","",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;
   }

 /**////提取HTML代码中文字的C#函数
   ///   <summary>
   ///   去除HTML标记
   ///   </summary>
   ///   <param   name="strHtml">包括HTML的源码   </param>
   ///   <returns>已经去除后的文字</returns>
   using   System;
   using   System.Text.RegularExpressions;
   public   class   StripHTMLTest{
       public   static   void   Main(){
           string   s=StripHTML("<HTML><HEAD><TITLE>中国石龙信息平台</TITLE&gt;</HEAD><BODY>faddfs龙信息平台</BODY></HTML>");
           Console.WriteLine(s);
       }   

       public   static   string   StripHTML(string   strHtml){
           string   []   aryReg   ={
                       @"<script[^>]*?>.*?</script>",   

                       @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""‘])(http://www.cnblogs.com/xchit/admin/file://[%22%22‘tbnr]%7c[%5e/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;
       }
   }

写一个静态方法  
  移除HTML标签#region   移除HTML标签

 /**////   <summary>
   ///   移除HTML标签
   ///   </summary>
   ///   <param   name="HTMLStr">HTMLStr</param>
   public   static   string     ParseTags(string   HTMLStr)
   {
   return   System.Text.RegularExpressions.Regex.Replace(HTMLStr,   "<[^>]*>",   "");
   }   

   #endregion   

                   取出文本中的图片地址#region   取出文本中的图片地址
                   /**////   <summary>
                   ///   取出文本中的图片地址
                   ///   </summary>
                   ///   <param   name="HTMLStr">HTMLStr</param>
                   public   static   string   GetImgUrl(string   HTMLStr)
                   {
                           string   str   =   string.Empty;
                           string   sPattern   =   @"^<img\s+[^>]*>";
                           Regex   r   =   new   Regex(@"<img\s+[^>]*\s*src\s*=\s*([‘]?)(?<url>\S+)‘?[^>]*>",
                                   RegexOptions.Compiled);
                           Match   m   =   r.Match(HTMLStr.ToLower());
                           if   (m.Success)
                                   str   =   m.Result("${url}");
                           return   str;
                   }   

                   #endregion

原文链接 :http://blog.csdn.net/gulijiang2008/article/details/7190281

时间: 2024-11-29 10:10:27

[转]正则表达式,去除所有HTML标签的相关文章

利用正则表达式去除所有html标签,只保留文字

后台将富文本编辑器中的内容返回到前端时如果带上了标签,这时就可以利用这种方法只保留文字. 标签的格式有以下几种 1.<div class="test"></div> 2.<img /> 3.自定义标签<My-Tag></My-Tag> 针对以上几种标签,确定的正则的规则是 reg=/<\/?.+?\/?>/g <表示尖括号 第一个\/?表示</div>这种标签的情况 .+?表示将中间所有内容替代掉

PHP正则表达式匹配嵌套HTML标签的方法和技巧

转载请注明出处:http://blog.csdn.net/donglynn/article/details/35788879 正则表达式是一个非常有用的编程技能.一般来说,简单的抓取一个HTML页面的某一条信息,比如<title>标题</title>,是很容易实现的.但是,我们往往要抓取某一个列表页面里的多个重复的<div></div>块里的特定内容,并且<div></div>块还有嵌套的使用,我们抓取的则是每个重复<div&g

ASP去除所有html标签

ASP去除所有html标签 function nohtml(str) dim re Set re=new RegExp re.IgnoreCase =true re.Global=True re.Pattern="(\<.[^\<]*\>)" str=re.replace(str," ") re.Pattern="(\<\/[^\<]*\>)" str=re.replace(str," ")

[转]使用正则表达式匹配嵌套Html标签

原文链接 https://msdn.microsoft.com/zh-cn/ff686933.aspx 本文来自Kevin Yang博客 作者:Kevin Yang 概述 正则表达式是做文本解析工作必不可少的技能.如Web服务器日志分析,网页前端开发等.很多高级文本编辑器都支持正则表达式的一个子集,熟练掌握正则表达式,经常能够使你的一些工作事半功倍.例如统计代码行数,只需一个正则就搞定.嵌套Html标签的匹配是正则表达式应用中一个比较难的话题,因为它涉及到的正则语法比较多,也比较难.因此也就更有

Java/Js下使用正则表达式匹配嵌套Html标签

转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里头用到了平衡组这样的高级特性,貌似只有DotNet还有Perl正则引擎支持,因此通用性不高. 通用 HTML 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣.就拿回来改改,成了下面这样,可能会有一些 ca

C#用正则表达式 获取网页源代码标签的属性或值

 原文地址:http://blog.csdn.net/lhfly/article/details/7684319 整理两个 在C#中,用正则表达式 获取网页源代码标签的属性或值的方法 : 1.获取标签中的值: <a href="www.csdn.net" class="main" >CSDN</a> 结果:CSDN /// <summary> /// 获取字符中指定标签的值 /// </summary> /// <

java正则表达式获取指定HTML标签的指定属性值

package com.mmq.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @use 获取指定HTML标签的指定属性的值 * @FullName com.mmq.regex.MatchHtmlElementAttrValue.java </br> * @JDK 1.6.0 </b

java正则表达式去除html标签

当我们用ckeditor或其他一些在线文本编辑器的时候 内容里会有很多的标签 如下片段: <p><img alt="" src="/img/uploadImg/20131218/0fd741e1-cc75-459c-a8b5-bbaebcfcc637.jpg" style="height:494px; width:460px" /></p> <p>生命的旅途,一程有一程的风景,一程有一程的盛放.打开

C#正则表达式去除XML标签

案例1: //数据源 String strSource = "<Sample>xxx<Extract>100</Extract></Sample> 11 <Extract>100<Extract>"; //表达式 String matchpattern = @"<([^>]*)>(.*?)<\/\1>"; //$2=(.*?) 进行替换 String replace