AutoFilter.java
上传用户:toby834
上传日期:2013-10-21
资源大小:2613k
文件大小:2k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package net.acai.filter;
  2. import java.util.regex.*;
  3. /**
  4.  * Title:        清清网络
  5.  * Description:
  6.  * Copyright:    Copyright (c) 2002
  7.  * Company:      www.SuperSpace.com
  8.  * @author:       SuperSpace
  9.  * @version 1.0
  10.  */
  11. public class AutoFilter extends filter {
  12.   public AutoFilter(String s) {
  13.     super(s);
  14.   }
  15.   public AutoFilter() {
  16.   }
  17.   public String convertString(){
  18.     return autoURLConverter();
  19.   }
  20.   public String autoURLConverter(){
  21.           Pattern p;
  22.           Matcher m;
  23.           StringBuffer sb;
  24.           boolean result;
  25.           String reg="^(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)|"+
  26.                   "((http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$)|"+
  27.                   "([^>=""](http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+))"+
  28.                   "|^(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"+
  29.                   "|(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"+
  30.                   "|[^>=""](ftp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"+
  31.                   "|^(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"+
  32.                   "|(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"+
  33.                   "|[^>=""](rtsp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"+
  34.                   "|^(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"+
  35.                   "|(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"+
  36.                   "|[^>=""](mms://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)";
  37.   p = Pattern.compile(
  38.       reg,
  39.       Pattern.CASE_INSENSITIVE);
  40.   m = p.matcher(s);
  41.   sb = new StringBuffer();
  42.   result = m.find();
  43.   while(result&&m.group(0)!=null) {
  44.       m.appendReplacement(sb,"<a target=_blank href="+m.group(0)+">"+m.group(0)+"</a>");
  45.       result = m.find();
  46.   }
  47.   m.appendTail(sb);
  48.           return sb.toString();
  49.   }
  50. }