2009年4月22日星期三

Java 常用正则表达式小结

正则imba,值得研究。

常用的正则表达式:
Java中的17种常用正则表达式归纳:


  
  01、"^\\d+$"  //非负整数(正整数 + 0)
  02、"^[0-9]*[1-9][0-9]*$"  //正整数
  03、"^((-\\d+)(0+))$"  //非正整数(负整数 + 0)
  04、"^-[0-9]*[1-9][0-9]*$"  //负整数
  05、"^-?\\d+$"    //整数

  06、"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)
  07、"^(([0-9]+\\.[0-9]*[1-9][0-9]*)([0-9]*[1-9][0-9]*\\.[0-9]+)([0-9]*[1-9][0-9]*))$"  //正浮点数
  08、"^((-\\d+(\\.\\d+)?)(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)
  09、"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)([0-9]*[1-9][0-9]*\\.[0-9]+)([0-9]*[1-9][0-9]*)))$"  //负浮点数
  10、"^(-?\\d+)(\\.\\d+)?$"  //浮点数
  11、"^[A-Za-z]+$"  //由26个英文字母组成的字符串
  12、"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
  13、"^[a-z]+$"  //由26个英文字母的小写组成的字符串
  14、"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
  15、"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串
  16、"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
  17、"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url



附具体使用程序:

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 regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字符


String regExSymbol="--―_`〕「」∶※→←%/О<>●·~『』[]〈〉\"《》.~!б㎡@#$%%^&*()+={}':;;',\\[\\].<>/?~!#¥…&*()+ 【】‘:”“’。,、?";//特殊符号
String regExNum="01234567890123456789ⅣⅤⅥⅦⅧⅨⅩⅪⅫ";//数字
String regExletter="a-zA-Z";//字母
String regEmail ="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*" ;//E-mail
String regURL = "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$";
String regTelNum = "\\d{3}-\\d{8}\\d{4}-\\d{7}";//国内电话,xxx-xxxxxxx的格式


//String regEx="[-`<>●『』〈〉\"《》.~!@#$%^&*()+={}':;',\\[\\].<>/?~!@#¥%……&*()——+{} 【】‘;:”“’。,、?1234567890]";


Pattern p = Pattern.compile("["+regExSymbol+regExNum+regExletter+"]"); //选用符号组合(这里用特殊符号+数字,注意顺序,不是数字+特殊符号)
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下面是中文的字符¥……{}【】。,;’“‘”?";
// String str = " <>\"再 美丽~!@#¥%……&*()- 足 部 美容 中心 采用 专业 技术 和 独特 修复 剂 可 彻底 治愈灰指甲 让 您 再现 靓 丽 双 足 生活 无 忧 无效 退款 诚信 为 本 -";
System.out.println(str);
System.out.println(StringFilter(str));
}

}

参考:http://jiake0504.javaeye.com/blog/182095
http://blog.chinaunix.net/u/21684/showart_435251.html

没有评论: