可以试试这个正则表达式:

\[(\d{4})\]0*(\d+)号|\d{4}0*(\d+)号

这个正则表达式可以同时匹配【2020】0022号 和 [2020]0021号。

解释一下:

  • \[(\d{4})\] 匹配中括号内的四个数字
  • 0* 匹配前导零
  • (\d+) 匹配一个或多个数字,并将其保存在第二个捕获组中
  • 匹配最后的“号”字符
  • | 表示或的关系,匹配两种格式中的任意一种
  • |\d{4}0*(\d+)号 匹配不带中括号的格式,即四位数字 + 数字序号的形式,并将数字序号保存在第三个捕获组中。

注意:如果需要在 Java 中使用该正则表达式,请将反斜杠(\)转义成双反斜杠(\\)。例如:

String regex = "\\[(\\d{4})\\]0*(\\d+)号|\\d{4}0*(\\d+)号";
帮我写个java代码的正则表达式。能同时匹配【2020】0022号 和 20200021号

原文地址: https://www.cveoy.top/t/topic/bzcg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录