我试图在python中使用正则表达式来表示一个4个字符字符串,其中第一个字符是一个数字,其他3个字符是一个数字或一个大写字母。下面是与1 1CTT、2IR8、35 of、4T1R匹配的模式示例
我尝试了很多种方法,下面是我尝试的最后一条代码:
exp=re.compile("[0-9]{1}([A-Z0-9]{3})")谢谢你的帮助!
发布于 2016-04-02 13:34:56
您上一次尝试的表达式看起来是正确的,应该与提供的测试字符串匹配。尽管您不必指定{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 ):
>>> 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']https://stackoverflow.com/questions/36373930
复制相似问题