Java 正则表达式重复匹配篇

重复匹配

  • * 可以匹配任意个字符,包括0个字符。
  • + 可以匹配至少一个字符。
  • ? 可以匹配0个或一个字符。
  • {n} 可以精确指定 n 个字符。
  • {n,m} 可以精确匹配 n-m 个字符。你可以是 0 。

匹配任意个字符

匹配 D 开头,后面是任意数字的字符,

复制代码
        String regexU1 = "D\\d*";
        System.out.println("DD".matches(regexU1));// false
        System.out.println("D1".matches(regexU1));// true
        System.out.println("D202".matches(regexU1));// true
        System.out.println("D88888888".matches(regexU1));// true

匹配至少一个字符

匹配 D 开头,后面至少是一位数字的字符,

复制代码
        String regexU2 = "D\\d+";
        System.out.println("D".matches(regexU2));// false
        System.out.println("D1".matches(regexU2));// true
        System.out.println("D202".matches(regexU2));// true
        System.out.println("D88888888".matches(regexU2));// true

匹配 0 个或一个字符

匹配 D 开头,后面是 0个或一个数字的字符,

复制代码
        String regexU3 = "D\\d?";
        System.out.println("D".matches(regexU3));// true
        System.out.println("D1".matches(regexU3));// true
        System.out.println("D22".matches(regexU3));// false
        System.out.println("D88888888".matches(regexU3));// false

匹配 n 个字符

匹配 D 开头,后面 3 个数字的字符,

复制代码
        String regexU4 = "D\\d{3}";
        System.out.println("D".matches(regexU4));// false
        System.out.println("D1".matches(regexU4));// false
        System.out.println("D22".matches(regexU4));// false
        System.out.println("D301".matches(regexU4));// true
        System.out.println("D3004".matches(regexU4));// false

匹配 n-m 个字符

匹配 D 开头,后面是 3-5 位数字的字符,

复制代码
        String regexU5 = "D\\d{3,5}";
        System.out.println("D".matches(regexU5));// false
        System.out.println("D1".matches(regexU5));// false
        System.out.println("D22".matches(regexU5));// false
        System.out.println("D333".matches(regexU5));// true
        System.out.println("D4000".matches(regexU5));// true
        System.out.println("D55555".matches(regexU5));// true
        System.out.println("D666666".matches(regexU5));// false
相关推荐
mifengxing3 小时前
LeetCode 41.缺失的第一个正数|Hard题O(n)+O(1)最优解法深度解析
java·算法·leetcode·排序算法
markinmarkin6 小时前
Spring 中Bean 的作用域有哪些?
java·后端·spring
山荷枝6 小时前
Java学习第十天
java·学习
matlabgoodboy7 小时前
计算机毕设代做|Java Python Matlab APP 全套开发设计
java·python·课程设计
程序员雷欧8 小时前
环形缓冲区深度解析:从基础原理到Disruptor源码的全面剖析
java
xiaoqiMikko8 小时前
Dependabot 面板全绿,不代表你的 Tomcat 没洞
java·spring boot
前端开发张小七8 小时前
Java 学习笔记 · 第三课:多线程与并发编程(线程、同步、死锁、Lock、乐观锁与悲观锁)
java·后端·程序员
花生了什么事o9 小时前
JVM 垃圾回收:对象如何被判定和回收
java·jvm
evans在进步9 小时前
HashMap 为什么线程不安全?ConcurrentHashMap 如何解决?
java·spring boot·spring
我命由我123459 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法