在python中定义正则表达式

2024-04-25 18:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中使用正则表达式来表示一个4个字符的字符串,其中第一个字符是数字,另外3个字符是数字或大写字母。 下面是应该匹配1CTT、2IR8、35TR、4T1R的模式示例

我尝试了很多方法,下面是我最后尝试的代码:

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

谢谢你的帮助!你知道吗


Tags: 方法字符串代码re示例模式数字大写字母
1条回答
网友
1楼 · 发布于 2024-04-25 18:48:45

上一次尝试的表达式看起来正确,应该与提供的测试字符串匹配。尽管您不必指定{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']

相关问题 更多 >