我需要匹配如下字符串:
NEV2297075 WB/03/001/585269 WB/03/HK/585065
它应该以2个或更多大写字母开头,以数字结尾,可以包含a-Z,/中间的数字,总长度应该在10到22之间
为此,我使用了:
re.findall(r'[A-Z]{2,}[A-Z\/0-9]{1,}[0-9]{10,22}'
我看到长度范围应用于它前面的表达式。如何将长度范围应用于整个字符串?
这里的量词 [0-9]{10,22} 重复匹配10-22个数字。
[0-9]{10,22}
如果要验证总字符数,应锚定该字符串,并在下一个锚定之前使用前瞻键验证字符数 ^(?=[A-Z\d,/]{10,22}$)
^(?=[A-Z\d,/]{10,22}$)
^(?=[A-Z\d,/]{10,22}$)[A-Z]{2,}[A-Z\d,/]*\d$
Regex demo