在python中定义一个正则表达式

时间:2016-04-02 13:32:15

标签: python regex

我试图在python中使用正则表达式来表示一个4个字符的字符串,第一个字符是一个数字,另外3个字符是数字或大写字母。 以下是与1CTT,2IR8,35TR,4T1R

相匹配的模式示例

我尝试了很多方法,这是我尝试的最后一个代码:

exp=re.compile("[0-9]{1}([A-Z0-9]{3})")

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您最后尝试过的表达式看起来是正确的,应该与提供的测试字符串相匹配。虽然您不必指定{1},也不需要捕获组(括号):

>>> import re
>>> text = "text, 1CTT, 2IR8, 35TR, 4T1R, smth else"
>>> pattern = re.compile(r"[0-9][A-Z0-9]{3}")
>>> pattern.findall(text)
['1CTT', '2IR8', '35TR', '4T1R']

您可能需要另外添加字边界约束(感谢@Jon Clements):

>>> text = "text, 1CTT, 2IR8, 35TR, 4T1R, smth else, 35TT35XYZ"
>>> pattern = re.compile(r"\b[0-9][A-Z0-9]{3}\b")
>>> pattern.findall(text)
['1CTT', '2IR8', '35TR', '4T1R']