简单了解java中的正则表达式

正则表达式

1、正则表达式认识

正则表达式通常用来校验,检查字符串是否符合规则,由一些特定的字符组成的字符串校验规则,就称之为正则表达式。

2、正则表达式能干啥?

正则表达式只能针对字符串格式进行校验,所以它的应用场景就是对用户输入的字符串进行校验

3、正则表达式使用

3.1、正则表达式语法-字符类

1、字符类

方括号被用于指定字符

2、语法演示(可以结合逻辑运算符使用)

  • [abc]:代表a或者b,或者c字符中的一个
  • [^abc]:代表除了a、b、c以外的字符
  • [a-z]:代表a到z的所有小写字母中的一个
  • [A-Z]:代表A到Z的所有小写字母中的一个
  • [0-9]:代表0到9的所有小写字母中的一个
  • [a-zA-Z0-9]:代表a到z、A到Z、0到9之间的任意一个字符

3、字符串正则匹配方法

boolean matches (正则表达式) :如果匹配正则表达式就返回true,否则返回false

public class Test {
    public static void main(String[] args) {
        String str = "abcdefa";
        String str1 = "a2u4d1a";

        // 验证str是否以a开头,以a结尾,中间5个字符是a-z任意字符
        System.out.println(str.matches("a[a-z][a-z][a-z][a-z][a-z]a"));

        //验证str是否以a开头,以a结尾,中间5个字符是0-9或者a-z之间任意字符
        System.out.println(str1.matches("a[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]a"));
    }
}

4、正则表达式-预定义字符

4.1、预定义字符:简化字符类的书写

  • ”.“:匹配任何字符
  • ”\d“:任何数字[0-9]的简写
  • ”\D“:任何非数字[ ^0-9 ]的简写
  • ”\s”:空白字符([\t、\n])
  • “\S”:非空白字符
  • “\w”:单词字符[a-zA-Z0-9]
  • “\W”:非单词字符
public class Test {
    public static void main(String[] args) {
        String str = "15911011912";

        //验证str是否是11位数字
        System.out.println(str.matches("\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d"));
        //之所以写成“\\d"而不是”\d“可以参考转义字符相关知识

        //验证str手机号是否以159开头,第四位是1/3/9,剩下的号码都是0-9之间任意数字
        System.out.println(str.matches("159[139]\\d\\d\\d\\d\\d\\d\\d"));

        //验证str号码是否以1开头,以2结尾,中间任意字符
        System.out.println(str.matches("1.........2"));
    }
}

5、正则表达式-数量词

5.1、数量词

注:假设X为任意字符

  • X?:0次或者1次
  • X*:0次或者多次
  • X+:1次或者多次
  • X{n}:恰好n次
  • X{n,}:至少n次
  • X{n, m}:n次到m次(n和m都是包含的
public class Test {
    public static void main(String[] args) {
        String str = "15911011912";

        //验证str是否是11位数字
        System.out.println(str.matches("\\d{11}"));
    }
}

6、正则表达式-分组括号

6.1、分组括号

将要重复使用的正则用小括号括起来,当做一个小组看待

public class Test {
    public static void main(String[] args) {
        String str = "AFDJ3-FJI1J-I7JI6-DNESX-FJI80";

        //要校验str被-分成了5组,每一组A-Z或者0-9的字符组成
        //我们可以这样来书写正则表达式(前四组做一个校验,最后一组做一次校验)
        System.out.println(str.matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值