Java教程

Java正则表达式

本文主要是介绍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
    }
这篇关于Java正则表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!