Java正则表达式


Java正则表达式

1. 正则表达式-匹配字符类

  • -[abc]: 匹配a或者b或者c中的任意一个字符;
  • -[^abc]: 匹配除a,b,c以外的任意一个字符;
  • -[a-z]: 匹配a到z之间的任意一个字母(小写,包含a和z);
  • -[A-Z]: 匹配A到Z之间的任意一个字母(大写,包含A和Z);
  • -[0-9]: 匹配0-9之间的任意一个数字字符;
  • -[a-ce-g]: 匹配a到c,e-g之间的任意一个字符;
  • -[a-ce-g0-5]: 匹配a到c,e-g,0-5之间的任意一个字符;
点击查看代码
public static void main(String[] args) {
        System.out.println("a".matches("[abc]"));  //true
        System.out.println("a".matches("[^abc]")); //false
        System.out.println("a".matches("[a-z]"));  //true
        System.out.println("a".matches("[A-Z]"));  //false
        System.out.println("0".matches("[0-9]"));  //true
        System.out.println("a".matches("[a-ce-g]"));//true
        System.out.println("d".matches("[a-ce-g]"));//false
        System.out.println("5".matches("[a-ce-g0-5]"));//true
        System.out.println("a1d".matches("a[0-9]d"));  //true 以a开头,以d结尾,中间一位数字
    }

2. 正则表达式-匹配逻辑运算符

  • &&:且
  • | :或

3. 正则表达式-预定义字符

  • “.” : 匹配任何字符。如果要表示一个字符点,使用/.
  • “/d”:任何数字[0-9]的简写;
  • “/D”:任何非数字[^0-9]的简写;
  • “/s”:空白字符:[ /t/n/x0B/f/r] 的简写
  • “/S”:非空白字符:[^/s] 的简写
  • “/w”:单词字符:[a-zA-Z_0-9]的简写
  • “/W”:非单词字符:[^/w]
点击查看代码
public static void main(String[] args) {
        System.out.println("abz".matches("a.z"));   //true
        System.out.println("acz".matches("a.z"));   //true
        System.out.println("a".matches("//."));     //true
        System.out.println("1".matches("//d"));     //false
        System.out.println("1".matches("//D"));     //true
        System.out.println(" ".matches("//s"));     //false
        System.out.println("a".matches("//S"));     //true
        System.out.println("a".matches("//w"));     //true
        System.out.println("1".matches("//w"));     //true
        System.out.println("@".matches("//w"));     //false
        System.out.println("@".matches("//W"));     //true

  }

4. 正则表达式-数量词

  • X? : 0次或1次
  • X* : 0次到多次
  • X+ : 1次或多次
  • X{n} : 恰好n次
  • X{n,} : 至少n次
  • X{n,m}: n到m次(n和m都是包含的)
点击查看代码
 public static void main(String[] args) {
        System.out.println("a".matches("//w?"));    //true
        System.out.println("aa".matches("//w*"));   //true
        System.out.println("aa".matches("//w+"));   //true
        System.out.println("aa".matches("a{2}"));   //true
        System.out.println("aaa".matches("a{2}"));  //false
        System.out.println("a".matches("a{2}"));    //false
        System.out.println("aaa".matches("a{2,}")); //true
        System.out.println("a".matches("a{2,3}"));  //false
        System.out.println("aa".matches("a{2,3}")); //true
        //验证是否是手机号
        // 1.第一位为1
        // 2.第二位是3,5,8 3).后面9位都是数字
        System.out.println("15812340987".matches("1[358]//d{9}"));// true
    }

5. 正则表达式-分组括号

以小括号将相同规则进行分组

点击查看代码
public static void main(String[] args) {
        String uuid = UUID.randomUUID().toString();
        System.out.println(uuid); //0f030d0f-fa5f-44f3-a510-2cbe60b4c67f
        String str = "0f030d0f-fa5f-fa5f-44f3-a510-2cbe60b4c67f";
        // 4-8位数字或者小写字母,以-结尾,并且出现4次,最后一次12位数字或者小写字母
        System.out.println(uuid.matches("([a-z0-9]{4,8}-){4}([a-z0-9]{12})")); //true
        System.out.println(str.matches("([a-z0-9]{4,8}-){4}([a-z0-9]{12})"));  //false
    }

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/278217.html

(0)
上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐

发表回复

登录后才能评论