zoukankan      html  css  js  c++  java
  • 利用正则表达式去掉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;
          
      }
     

  • 相关阅读:
    VC++对话框笔记
    STL中用erase()方法遍历删除元素
    VC++中不小心选错工程类型的解决办法
    directX中常用的数学计算
    VC++中string、char* 转换为LPCSTR
    判断空间上点是否在直线上
    vc6.0插件
    VC++常用定义(如SAFE_DELETE等)
    关于控件的AutoSize属性影响界面布局的问题解决
    C#判断日期是否正确(1900~今年,月份,天数)
  • 原文地址:https://www.cnblogs.com/wang123/p/505758.html
Copyright © 2011-2022 走看看