一.常见的正则表达式
/**
* 数字正则表达式,以^开头,以$结尾,[0-9]表示0-9的数字,*表示0-n个
* 该正则表达式匹配0-n个数字
*/
private static final String REGEX_NUM = "^[0-9]*$";
/**
* 以1开头的11位手机号码校验正则表达式,以^开头,以$结尾
* (1)表示单独的一个数字1开头
* [0-9]表示0-9的任意数字,{10}表示10次
* [0-9]{10},表示0-9的任意数字出现10次
* 该正则表达式匹配以1开头的11位数字
*/
private static final String REGEX_PHONE = "^(1)[0-9]{10}$";
/**
* 不允许为空英文字符正则表达式,以^开头,以$结束
* [a-zA-Z]表示a-z的小写英文字符和A-Z的大写英文字符
* +表示1-n个,不允许为空
* 该正则表达式匹配任意个(不为空的)英文字符串
*/
private static final String REGEX_CHAR = "^[a-zA-Z]+$";
/**
* 校验变量名格式的正则表达式,以^开头,以$结束
* [_$a-z]表示允许以下划线_和$以及小写英文字符开头
* [_$0-9a-zA-Z]*表示允许以下划线_,$,数字0-9,大小写英文字符出现0-n次
* 该正则表达式匹配变量命名的格式,字母数字下划线$,不允许以数字开头
*/
private static final String REGEX_PARAM = "^[_$a-z][_$0-9a-zA-Z]*$";
/**
* 匹配中文字符的表达式
*/
private static final String REGEX_CHINESE = "^[\\u4E00-\\u9FA5]*$";
二.Pattern类的使用
1.match匹配字符串格式
// 校验字符串格式
String str = "|";
// pattern编译正则表达式,匹配一个|
Pattern pattern = Pattern.compile("^[|]{1}$");
// 以pattern正则来匹配字符串str
Matcher matcher = pattern.matcher(str);
// 判断是否完全符合正则的格式
boolean flag = matcher.matches();
System.out.println("符合正则表达式的格式:" + flag);
2.find寻找字符串是否存在
// 校验字符串格式
String str = "中|文";
// pattern编译正则表达式,匹配一个|
Pattern pattern = Pattern.compile("^|$");
// 以pattern正则来匹配字符串str
Matcher matcher = pattern.matcher(str);
// 判断字符串中是否包含正则表达式串
boolean flag = matcher.find();
System.out.println("在str中发现正则表达式类型的字符串" + flag);
温馨提示:每次使用正则表达式之前,先在main方法中测试好,不然等你debug的时候,会怀疑人生。