利用正则表达式去掉html代码

本文介绍两种使用C#去除HTML标签的方法:一种通过简单的正则表达式匹配<和>之间的内容;另一种采用更复杂的正则表达式来处理多种HTML元素,包括脚本、注释等。
 

using System.Text.RegularExpressions;//需要引用

  // 利用正则表达式去掉"<"和">"之间的内容
  private string StripHT(string strHtml)
  {
   Regex regex=new Regex("<.+?>",RegexOptions.IgnoreCase);
   string strOutput=regex.Replace(strHtml,"");
   return strOutput;
  }


//方法二(不知为什么此方法占用CPU100%)

public static string DropHTML(string strHtml)
  {
   string [] aryReg ={
          @"<script[^>]*?>.*?</script>",
          @"<(///s*)?!?((/w+:)?/w+)(/w+(/s*=?/s*(([""''])(//[""''tbnr]|[^/7])*?/7|/w+)|.{0})|/s)*?(///s*)?>",
          @"([/r])[/s]+",
          @"&(quot|#34);",
          @"&(amp|#38);",
          @"&(lt|#60);",
          @"&(gt|#62);",
          @"&(nbsp|#160);",
          @"&(iexcl|#161);",
          @"&(cent|#162);",
          @"&(pound|#163);",
          @"&(copy|#169);",
          @"&#(/d+);",
          @"-->",
          @"<!--.*"        
         };

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

   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","");
   return strOutput;
     
  } 

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值