以下可以接受格式,
(CCC|CC|CCN)/(NNNN-NNNNNNNN)
OR
(CCC|CC|CCN)/NN/(NN-NNNNN)
其中C表示字符[A-Z],N表示数字[0-9]
我设法创建2个正则表达式来匹配这两个条件,
^[A-Z]{2}[A-Z|0-9]{0,1}/\d{4,8}$
OR
^[A-Z]{2}[A-Z|0-9]{0,1}/\d{2}/\d{2,5}$
是否可以根据/上的条件(即正斜杠的数量)将它们合并到一个正则表达式中?
示例有效示例可以是: -
MAT/1234
XP/1234
XW1/12345678
XU/12/34
KLY/12/34567
RT1/23/45678
答案 0 :(得分:1)
根据您当前的格式,我想出了这个正则表达式。
目前还不确定OP是在寻找格式1111-11111111
还是长度为4到8的数字。所以我会为这两种情况提供解决方案,这些情况可能会在将来派上用场。
格式: (NNNN-NNNNNNNN)
或NN/(NN-NNNNN)
正则表达式: ^([A-Z]{2}[A-Z0-9]?)\/((\d{4}-\d{8})|(\d{2}\/\d{2}-\d{5}))$
的 Regex101 Demo 强>
对于范围4到8和2到5
的数字长度 正则表达式: ^([A-Z]{2}[A-Z0-9]?\/)(\d{4,8}|\d{2}\/\d{2,5})$
的 Regex101 Demo 强>
答案 1 :(得分:0)
好吧,我的正则表达式更长了一点:
(?im)^([a-z]{2}[\\da-z]?)/(\\d{4}\\-\\d{8}|\\d{2}/\\d{2}\\-\\d{5})$
请参阅regex101
上的演示匹配
AA2/2222-22222222
AAA/2222-22222222
AA/2222-22222222
AA2/22/22-22222
AA/22/22-22222
AAB/22/22-22222
但不是
AA2A/2222-22222222A
AAA/2222-222A22222
AA/2222-222222223
2A2/22/22-222222
3AA/22/22-22222
1AB/22/22-22222
答案 2 :(得分:0)
更新要将以下两种模式合并为一种模式:
^[A-Z]{2}[A-Z|0-9]{0,1}/\d{4,8}$
OR
^[A-Z]{2}[A-Z|0-9]{0,1}/\d{2}/\d{2,5}$
你可以尝试:
^[A-Z]{2}[A-Z|0-9]{0,1}/\d{2}(?:\d{2,6}|/\d{2,5})$