2009年4月15日星期三

Java中应用正则表达式过滤的小例子

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class SpeStrFilter {


//过滤特殊字符
public static String StringFilter(String str) throws PatternSyntaxException
{


String regExSymbol="--―_`〕「」∶※→←%/О<>●·~『』[]〈〉\"《》.~!ⅠⅡⅢб㎡@#$%%^&*()+={}':;',\\[\\].<>/?~!@#¥%……&*()——+{} 【】‘;:”“’。,、?";
String regExNum="01234567890123456789ⅣⅤⅥⅦⅧⅨⅩⅪⅫ";
String regExletter="a-zA-Z";

Pattern p = Pattern.compile
("["+regExSymbol+regExNum+"]"); //选择特殊字符和过滤数字,注意顺序
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}


public static void main(String[] args) throws PatternSyntaxException
{
String str = "*adCVs*34_a _09_b5*[/435^*&城池()^$$&*).{}+..)%%*(*.中国}34{45[]12.fd'*&999下面是中文的字符¥……{}【】。,;’“‘”?";
System.out.println(str);
System.out.println(StringFilter(str));
}

}

输入:*adCVs*34_a _09_b5*[/435^*&城池()^$$&*).{}+..)%%*(*.中国}34{45[]12.fd'*&999下面是中文的字符¥……{}【】。,;’“‘”?
输出:adCVsab城池中国fd下面是中文的字符

没有评论: