如何使用 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}' 表达式,但这也给我不需要的文本。请参阅下面的预期输出。

条件:

  1. 字符串总共应为 7 个字符。
  2. 字符串的最后 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]?)