如何使用python regex/re确保字符串中的最后2个字符至少有一个数字
我正试图解析一些特定的文本,如下所示。我已经尝试将python re与如何使用python regex/re确保字符串中的最后2个字符至少有一个数字,python,regex,re,Python,Regex,Re,我正试图解析一些特定的文本,如下所示。我已经尝试将python re与 r'[A-Z]{5}[A-Z0-9]{2}'表达式,但这也给了我不需要的文本。有关预期输出,请参见下文 条件: 字符串应总共为7个字符 字符串最后2个字符应仅为2位或至少有1位带有[A-Z]字母 给定字符串: “DHKGNC1、DHK32、DHKGN1K、部分、垃圾、文本” 预期输出:['DHKGNC1','DHDHK32','DHKGN1K'] 实际输出:['DHKGNC1','DHDHK32','DHKGN1K','
r'[A-Z]{5}[A-Z0-9]{2}'
表达式,但这也给了我不需要的文本。有关预期输出,请参见下文
条件:
“DHKGNC1、DHK32、DHKGN1K、部分、垃圾、文本”
预期输出:
['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]?)
[A-z]
的定义不是很明确;你的意思是[A-Z]
?是的,抱歉是指A-Z。你已经编辑了原始答案