字符类(只匹配一个字符)
1.[abc] 只能是a、b或者c。
2.[^abc] 除了a、b、c之外的任何字符。
3.[a-zA-Z] a到z之间,A到Z之间。
4.[a-d[m-p]] a到d或者m到p之间。
5.[a-z&&[def]] a到z与d、e、f的交集。结果为:d、e、f
6.[a-z&&[^bc]] a到z和非bc的交集(等同于[ad-z])
7.[a-z&&[^m-p]] a到z和非m到p的交集(等同于[a-lq-z])
预定义字符类
8.. 任何字符
9.\d 数字:[0-9]
10.\D 非数字: [^0-9]
11.\s 空白字符:[ \t\n\x0B\f\r]
12.\S 非空白字符:[^\s]
13.\w 单词字符:[a-zA-Z_0-9]
14.\W 非单词字符:[^\w]
Greedy 数量词
15.X? X,一次或一次也没有
16.X* X,零次或多次
17.X+ X,一次或多次
18.X{n} X,恰好 n 次
19.X{n,} X,至少 n 次
20.X{n,m} X,至少 n 次,但是不超过 m 次
练习:
public static void main(String[] args) {
/*需求
请编写正则表达式验证用户输入的手机号码是否满足要求。
请编写正则表达式验证用户输入的邮箱号是否满足要求。
请编写正则表达式验证用户输入的电话号码是否满足要求。
验证手机号码
13112345678
13712345667
13945679027
139456790271
验证座机电话号码
0200-2324242
02122442
0271-42424
0712-3242434
验证邮箱号码
3232323@qq.com
zhangsan@itcast.cnn
dlei0009@163.com
dlei0009@pci.com.cn
*/
//验证手机号(以下为我们自己默认的规则,不一定是正确的)
//第一位:1,第二位:3-9,第三到十一位:任意数字
String regex1 = "1[3-9]\\d{9}";
System.out.println("13112345678".matches(regex1));//true
System.out.println("13712345667".matches(regex1));//true
System.out.println("13945679027".matches(regex1));//true
System.out.println("139456790271".matches(regex1));//false
System.out.println("----------------------------------------");
//座机号码(以下为我们自己默认的规则,不一定是正确的)
//第一部分:区号
// 第一位:0 第二位:1-9,第三到四位:任意数字,
//第二部分:-
// 第五位:-,
//第三部分:号码(总长度4-7)
//第六位:不能为0,
//第七位以后:任意数字
String regex2 = "0[^0]\\d{2}-[^0]\\d{3,6}";
System.out.println("0200-1324242".matches(regex2));
System.out.println("02122442".matches(regex2));
System.out.println("0071-42424".matches(regex2));
System.out.println("0712-3242434".matches(regex2));
System.out.println("---------------------------------");
//验证邮箱号码(以下为我们自己默认的规则,不一定是正确的)
//第一部分@左边:任意单词字符最少一个,最多十个
//第二部分:@
//第三部分@右边.的左边:任意字母加数字2-6次
//第四部分:域名{(.加2-3个英文字母)一起出现1-2次}
String regex3 = "\\w{1,10}@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";
System.out.println("3232323@qq.com".matches(regex3));
System.out.println("zhangsan@itcast.cnn".matches(regex3));
System.out.println("dlei0009@163.com".matches(regex3));
System.out.println("dlei0009@pci.com.cn".matches(regex3));
}
详情可查询API搜索Pattern.