【问题标题】:Python regex to match alphanumeric starting with capital letter and length rangePython正则表达式匹配以大写字母和长度范围开头的字母数字
【发布时间】:2022-01-13 02:39:45
【问题描述】:

我需要匹配这样的字符串:

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}'

我看到长度范围正应用于紧接在它之前的表达式。如何将长度范围应用于整个字符串?

【问题讨论】:

  • 你不能。您可以限制数字字符串的长度,但不能限制总长度。您必须在后处理中通过检查返回的“匹配”对象的长度来执行此操作。

标签: python regex python-re


【解决方案1】:

这里的量词 [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

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多