首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

java运用正则表达式去除字符串的html标签

2012-10-31 
java使用正则表达式去除字符串的html标签public class Test {/** * @param args */public static void mai

java使用正则表达式去除字符串的html标签

public class Test {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString atr="<pre class="reply-text mb10" id="content-862802486" style="margin-top:0px;margin-bottom:10px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:Arial;white-space:pre-wrap;word-wrap:break-word;zoom:1;font-size:14px;line-height:24px;background-color:#FFFFFF;">你这个错就错在使用了.*" +"在正则里.<br/>指的是匹配所有字符,而且是匹配优先,对于你这个正则来说到&lt;a\\shref="(http:为止都是正常的,但后面的.*就会一直匹配到文件的最后,因为对于.*来说是匹配所有字符,所以后面的一切都是匹配的.匹配到最后结尾时,再来进行结尾检查,但你的正则是以&lt;/a&gt;结尾的,不符合,所以就再回头向回一个个的查,一直查到(.*[^&gt;])中的.*匹配.好了,最后你这个表达式最终的结果其实就是匹配以&lt;a\\shref="(http: 开头,以[^&gt;])&lt;/a&gt;结尾,中间是任意字符的表达式 </pre>";System.out.println(splitAndFilterString(atr,100));}    /**          * 删除input字符串中的html格式          *           * @param input         * @param length          * @return          */          public static String splitAndFilterString(String input, int length) {              if (input == null || input.trim().equals("")) {                 return "";             }             // 去掉所有html元素,            String str = input.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(                     "<[^>]*>", "");             str = str.replaceAll("[(/>)<]", "");            int len = str.length();             if (len <= length) {                 return str;             } else {                 str = str.substring(0, length);                 str += "...";            }             return str;         }  }

热点排行