Python和regex查找长度为5的数

2024-04-23 19:33:30 发布

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

所以现在我有了绳子

'JavaScript:doEdit('41228', '', '', 2);'

我想在它上面用python做正则表达式来过滤掉41228。我试过两种方法,但都有问题。第一种方法是使用

^{pr2}$

然后我试过了重新匹配以及重新编译这给了我一个错误类型error:不支持的操作数类型:str和int。在

我唯一能做的就是利用re.sub公司{'\D',string}但我不想多加2个。在

我想只要在字符串中找到第19到24个字符就不是问题了。因为字符串不应该改变组成。当我生成一个新的id时

已解决:工作代码为

screen_id = 'JavaScript:doEdit('41228', '', '', 2);'
reduced_screenc_id = re.search(r'\d{5}', screenc_id)
print (reduced_screenc_id.group())

Tags: 方法字符串reid类型错误errorjavascript
2条回答

如果您的字符串始终是这种格式,则可以使用一个与'相关的拆分操作:

s = "JavaScript:doEdit('41228', '', '', 2);"
print(s.split("'")[1])
# => 41228

如果您计划研究regex,可以将re.search\d{5}或{}regex一起使用。在

^{pr2}$

因为您只需要第一个匹配项,所以使用re.findall是没有意义的。在

this Python demo。在

使用re.findall查找字符串中模式的所有(非重叠)实例:

>>> import re
>>> string = "JavaScript:doEdit('41228', '', '', 2);"
>>> pattern = '\d{5}'  # 5 digits
>>> number = re.findall(pattern, string)[0]
>>> number
'41228'

然后,您可能需要使用number = int(number)将“number”转换为实际数字。在

相关问题 更多 >