正则表达式规则:
[abc] a、b、c中任意一个字符
[^abc] 除了a、b、b的任意一个字符
[a-z] a-z中的任意一个字符
[a-zA-Z0-9] a-z、A-Z、0-9中任意一个字符
[a-z&&[^bc]] a-z中除b、c的任意一个字符
X? 表示0个或1个X
X* 表示0个或任意多个X
X+ 表示1个到任意多个X
X{n} 表示n个X
X{n,} 表示n个到任意多个X(大于等于n个X)
X{n, m} 表示n个到m个X(大于等于n个且小于m个X)
[]描述一个字符
()描述多个字符(多个字符是一个整体)
|描述或关系
&&描述与关系
. 任意一个字符
\d 任意一个数字字符,相当于[0-9]
\D 任意一个非数字字符,相当于[^0-9]
\s 空白字符
\S 非空白字符
\w 任意一个单词字符,相当于[a-zA-Z0-9_]
\W 任意一个非单词字符,相当于[^\w]
\ 转义字符可以还原特殊字符 如\. \+ \*等
正则表达式举例:
描述邮箱格式
[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.com|\.cn|\.net)
[\w]+@[a-zA-Z0-9]+(\.com|\.cn|\.net)
java中正则表达式使用
String regStr = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.com|\\.cn|\\.net)";
// Pattern的作用是描述正则表达式的格式支持,使用静态方法compile注册正则表达式生成实例
Pattern pattern = Pattern.compile(regStr);
String mailStr = "wangjun@52bill.com";
// 匹配字符串,返回描述匹配结果的Matcher实例
Matcher matcher = pattern.matcher(mailStr);
// 调用matcher的find方法得知是否匹配成功
if(matcher.find()){
System.out.println(mailStr+" 邮箱格式正确");
}else{
System.out.println(mailStr+" 邮箱格式错误");
}