java笔记 -----正则表达式

正则表达式其实就是进行字符串匹配的式子

它的标准形式如下

  匹配字符串由三个字符组成
        // 第一个字符: a/b/c
        // 第二个字符: 3/4/6/7
        // 第三个字符: o/p/q
        String str = "566";
        // 指定正则表达式的规则
       Pattern p = Pattern.compile("[abc][3467][opq]");
        // 将规则和要判断的字符串进行关联
        Matcher m = p.matcher(str);
        // 进行判断
        System.out.println(m.matches());

实际上我们也可以直接调用String的matches()方法进行匹配

  System.out.println(str.matches("[abc][3467][opq]"));

其他的一些技巧如下

        // 判断由一个小写字母组成的字符串
        System.out.println(str.matches("[a-z]"));
        // 判断由一个字母组成的字符串(只要是连续范围即可 [m-x])
        // 如果是数字[0-9]
        System.out.println(str.matches("[a-z][A-Z]"));

        // 判断由一个字符组成的字符串,这个字符不能是a/b/c
        System.out.println(str.matches("[^abc]"));

        // . 通配符 可以代表任意字符
        // 匹配由3个字符组成的字符串
        // 开头是数字  结尾是字母
        System.out.println(str.matches("\\d.[a-zA-Z]"));

        // 匹配 .
        System.out.println(str.matches("\\."));

        // 匹配 \
        System.out.println(str.matches("\\\\"));

        // ab abb abbb abbbb abbbbb...
        // + 表示之前的字符至少出现1次  >= 1
        System.out.println(str.matches("ab+"));
        // 匹配由字母开头后续是数字的字符串
        System.out.println(str.matches("[a-zA-Z]\\d+"));

        // 由数字作为头和尾的字符串
        // *  表示之前的字符可有可无  >= 0
        System.out.println(str.matches("\\d.*\\d"));

        // 匹配一个不超过两位的数字组成的字符串
        // ? 表示之前的字符最多出现一次  <= 1
        System.out.println(str.matches("\\d\\d?"));
        // +  *  ? 这三个数量词字符后面只能出现一次

你可能感兴趣的:(java笔记 -----正则表达式)