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+" 邮箱格式错误");
        }

 

上一篇:Java番外篇1——正则表达式


下一篇:常用正则表达式