- 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]
- 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.