如何使用 python 正则表达式确保字符串中的最后 2 个字符至少有一位数字
How to make sure that in a string last 2 characters have at least one digit with python regex
我正在尝试解析一些特定的文本,如下所示。我尝试将 python re 与
r'[A-Z]{5}[A-Z0-9]{2}'
表达式,但这也给我不需要的文本。请参阅下面的预期输出。
条件:
- 字符串总共应为 7 个字符。
- 字符串的最后 2 个字符应该只有 2 位或至少有 1 位带有 [A-Z] 字母
给定的字符串:
"DHKGNC1, DHDHK32, DHKGN1K, SOME, GARBAGE, TEXT"
预期输出:['DHKGNC1', 'DHDHK32', 'DHKGN1K']
实际输出:['DHKGNC1', 'DHDHK32', 'DHKGN1K', 'GARBAGE']
不要使用[A-Z0-9]{2}
,使用([A-Z0-9][0-9])|([0-9][A-Z0-9])
即一个或另一个必须是数字。
re.findall(r'([A-Z]{5}(?:(?:[A-Z0-9][0-9])|(?:[0-9][A-Z0-9])))', "DHKGNC1, DHDHK32, DHKGN1K, SOME, GARBAGE, TEXT")
['DHKGNC1', 'DHDHK32', 'DHKGN1K']
我认为以下正则表达式可能有效:
[A-Z]{5}([A-Z]?[0-9]{1,2}[A-Z]?)
我正在尝试解析一些特定的文本,如下所示。我尝试将 python re 与
r'[A-Z]{5}[A-Z0-9]{2}'
表达式,但这也给我不需要的文本。请参阅下面的预期输出。
条件:
- 字符串总共应为 7 个字符。
- 字符串的最后 2 个字符应该只有 2 位或至少有 1 位带有 [A-Z] 字母
给定的字符串:
"DHKGNC1, DHDHK32, DHKGN1K, SOME, GARBAGE, TEXT"
预期输出:['DHKGNC1', 'DHDHK32', 'DHKGN1K']
实际输出:['DHKGNC1', 'DHDHK32', 'DHKGN1K', 'GARBAGE']
不要使用[A-Z0-9]{2}
,使用([A-Z0-9][0-9])|([0-9][A-Z0-9])
即一个或另一个必须是数字。
re.findall(r'([A-Z]{5}(?:(?:[A-Z0-9][0-9])|(?:[0-9][A-Z0-9])))', "DHKGNC1, DHDHK32, DHKGN1K, SOME, GARBAGE, TEXT")
['DHKGNC1', 'DHDHK32', 'DHKGN1K']
我认为以下正则表达式可能有效:
[A-Z]{5}([A-Z]?[0-9]{1,2}[A-Z]?)