正则表达式(常用)

字符类(只匹配一个字符)

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.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值