Java 过滤 html、script、style 代码得到纯字符串 方法

本文提供了一个Java方法,用于去除HTML、script、style标签,并将字符串截取至指定长度,同时保留了原文作者的贡献。

网上搜的方法。试了试还挺好用。自己稍微修改了下。。对不起啦原作者 

/***
* 
* @param content 内容String
* @param p >0 .位数
* @return @tale:
* @purpose:得到相应位数已过滤html、script、style 标签的内容 内容结尾 为...
* @author:Simon - 赵振明
* @CreationTime:Aug 25, 201011:07:06 AM
*/
public static String getNoHTMLString(String content,int p){
  
    if(null==content) return "";
    if(0==p) return "";
  
    java.util.regex.Pattern p_script; 
         java.util.regex.Matcher m_script; 
         java.util.regex.Pattern p_style; 
         java.util.regex.Matcher m_style; 
         java.util.regex.Pattern p_html; 
         java.util.regex.Matcher m_html; 
        
     try { 
         String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";
         //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> } 
         String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; 
               //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> } 
               String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式 
           
               p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE); 
               m_script = p_script.matcher(content); 
               content = m_script.replaceAll(""); //过滤script标签
               p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE); 
               m_style = p_style.matcher(content); 
               content = m_style.replaceAll(""); //过滤style标签 
           
               p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
               m_html = p_html.matcher(content); 
               
               content = m_html.replaceAll(""); //过滤html标签 
           }catch(Exception e) { 
                   return "";
           } 
  
           if(content.length()>p){
            content = content.substring(0, p)+"...";
           }else{
            content = content + "...";
           }
  
  
  
   return content;
}



转自:http://hi.baidu.com/minglove1986/blog/item/7232497a4d0544e32e73b38f.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值