我需要构建一个正则表达式来检查发票号,如下所示:FV/1024/02/2018
FV
-始终使用FV没什么不同1024
-下一个发票编号-始终以“ 1”开头,接下来的三个数字是不同的[0-9]
02
-月-始终为1-122018
-一年
我有:
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])
从01
到09
或1[1-2]
从10
到12
\/\d{4}
是斜杠年份,例如/2018