java - 正则表达式 Java - 检查发票号码

标签 java regex

我需要构建一个正则表达式来检查发票号码,如下所示:FV/1024/02/2018

  • FV - 始终使用 FV 没有什么不同
  • 1024 - 发票的下一个编号 - 始终以“1”开头,接下来的三个数字不同 [0-9]
  • 02 - 月份 - 始终为数字 1-12
  • 2018 - 一年

我有:

Pattern pattern = Pattern.compile("([FV])/((1)[0-9]{3})/([0,1]{1}[0-9]{1})/([0-9]{4})");

我知道...“有些”错误...

最佳答案

这应该有效

FV\/1\d{3}\/(:?(:?0[1-9])|1[0-2])\/\d{4}

Demo

  • FV\/ 匹配第一个常量部分 (FV/) 字符串
  • 1\d{3}\/ 是发票编号 - 以 1 开头,后跟 3 位数字
  • (:?(:?0[1-9])|1[0-2]) 是月份数字
    • (:?0[1-9])0109
    • 1[1-2]1012
  • \/\d{4} 是斜杠年份,例如/2018

关于java - 正则表达式 Java - 检查发票号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48797277/

相关文章:

java - 遍历一组复选框

regex - 为什么 grep 匹配得比应有的多,例如 "^[\s]*set breakpoint.*in"匹配 "set breakpoint 1 at main.c:5"吗?

python - 如何从 pandas 数据框中使用正则表达式删除答案中的点号 : '(i)' , '(ii)' 、 '(iii)' ?

java - 从 JSON 创建动态对象

python - 如何仅捕获析取的匹配侧?

正则表达式计数不包括空格的位数

regex - 如何在 shell 脚本中使用正则表达式从 URL 中提取字符串字段值?

java - 以编程方式(不进行字符串匹配)检查 JVM 是否使用 IPV6 或 IPV4

java - 在 FFMPEG 写入文件时读取文件

java - SWT TableColumn 不起作用?