Python 匹配以大写字母和长度范围开头的字母数字的正则表达式

Python regex to match alphanumeric starting with capital letter and length range

我需要匹配如下字符串:

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 位数字。

如果您想验证总字符数,您应该锚定字符串并验证字符数,直到下一个锚点使用先行 ^(?=[A-Z\d,/]{10,22}$)

^(?=[A-Z\d,/]{10,22}$)[A-Z]{2,}[A-Z\d,/]*\d$

Regex demo