Java中的正则表达式常用语法

字符类(匹配单个字符)

语法作用
[abc]匹配a,b,c这三个中的一个字符
[^abc]匹配 除了a,b,c之外的任何字符
[a-zA-Z]匹配a到z,A到Z的字符
[a-d[m-p]]匹配a到d,或者m到p之间的单个字符
[a-z&&[def]]匹配a-d和def的交集,单个字符
public class Demo1 {
    public static void main(String[] args) {
        /**
         * 字符类【只匹配单个字符】
         */
        // [abc] 只能是a,b,c三个字符中的其中一个
        System.out.println("abc".matches("[abc]"));
        System.out.println("a".matches("[abc]"));
        System.out.println("--------------------");

        // [^abc] 除了abc之外的任意单个字符
        System.out.println("a".matches("[^abc]"));
        System.out.println("d".matches("[^abc]"));
        System.out.println("--------------------");

        // [a-zA-Z] 匹配a到z,A到Z的单个字符
        System.out.println("我".matches("[a-zA-Z]"));
        System.out.println("A".matches("[a-zA-Z]"));
        System.out.println("--------------------");

        // [a-d[m-p]] 匹配a到d,或者m到p之间的单个字符
        System.out.println("e".matches("[a-d[m-p]]"));
        System.out.println("b".matches("[a-d[m-p]]"));
        System.out.println("--------------------");

        // [a-z&&[def]] 匹配a-d和def的交集,单个字符
        System.out.println("a".matches("[a-z&&[def]]"));
        System.out.println("f".matches("[a-z&&[def]]"));
        System.out.println("--------------------");
    }
}



预定义字符(匹配单个字符)

语法作用
.(符号点)任意单个字符
\d一个数字[0-9]
\D匹配一个非数字 [^0-9]
\s匹配一个空格字符
\S匹配一个非空格字符 [^\s]
\w匹配一个字符数字下划线字符 [a-zA-Z_0-9]
\W匹配一个非字母数字下划线字符 [^\w]
public class Demo2 {
    public static void main(String[] args) {
        /**
         * 预定义字符,只能匹配单个字符
         */
        // . 任何字符
        System.out.println("我".matches("."));
        System.out.println("h".matches("."));
        System.out.println("--------------------");

        // \d 一个数字[0-9]
        System.out.println("a".matches("\\d"));
        System.out.println("1".matches("\\d"));
        System.out.println("--------------------");

        // \D 匹配一个非数字 [^0-9]
        System.out.println("4".matches("\\D"));
        System.out.println("爱".matches("\\D"));
        System.out.println("--------------------");

        // \s 匹配一个空格字符
        System.out.println("h".matches("\\s"));
        System.out.println(" ".matches("\\s"));
        System.out.println("--------------------");

        // \S 匹配一个非空格字符 [^\s]
        System.out.println(" ".matches("\\S"));
        System.out.println("1".matches("\\S"));
        System.out.println("--------------------");

        // \w 匹配一个字符数字下划线字符 [a-zA-Z_0-9]
        System.out.println("中".matches("\\w"));
        System.out.println("a".matches("\\w"));
        System.out.println("--------------------");

        // \W 匹配一个非字母数字下划线字符 [^\w]
        System.out.println("_".matches("\\W"));
        System.out.println("国".matches("\\W"));
    }
}



数量词

语法作用
x?表示x出现一次或0次
x*表示x出现0次或多次
x+表示x出现1次或多次
x{n}表示x正好出现n次
x{n,}表示x至少出现n次
x{n,m}表示x至少出现n次不超过m次
public class Demo3 {
    public static void main(String[] args) {
        /**
         * 数量词
         */
        // x? 表示x出现一次或0次
        System.out.println("xx".matches("x?"));
        System.out.println("x".matches("x?"));
        System.out.println("--------------------");

        // x* 表示x出现0次或多次
        System.out.println("abc".matches("x*"));
        System.out.println("xxxxx".matches("x*"));
        System.out.println("--------------------");

        // x+ 表示x出现1次或多次
        System.out.println("".matches("x+"));
        System.out.println("x".matches("x+"));
        System.out.println("--------------------");

        // x{n} 表示x正好出现n次
        System.out.println("xx".matches("x{3}"));
        System.out.println("xxx".matches("x{3}"));
        System.out.println("--------------------");

        // x{n,} 表示x至少出现n次
        System.out.println("x".matches("x{2,}"));
        System.out.println("xxx".matches("x{2,}"));
        System.out.println("--------------------");

        // x{n,m} 表示x至少出现n次不超过m次
        System.out.println("xx".matches("x{3,5}"));
        System.out.println("xxxx".matches("x{3,5}"));

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值