java字符串之正则表达式

正则表达式规则:

[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+" 邮箱格式错误");
        }
经验分享 程序员 微信小程序 职场和发展