You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配字符串中的数字并转换为整数问题求助

嘿,我一眼就瞅出你代码里的问题啦!你现在遇到的数字被拆成单个字符的情况,核心原因是不该循环遍历字符串sample的每个字符。

你看哦,当你写for line in sample的时候,Python会把这个长字符串拆成一个一个的字符来迭代——比如第一次循环line是'H',第二次是'e',以此类推。每次在单个字符里用re.findall找数字,自然只能拿到单个数字字符,根本抓不到连续的数字串呀!

修正后的代码

直接对整个sample字符串调用正则匹配就好,不需要多余的循环,然后把匹配到的字符串转成整数就行:

import re

sample = "Here are a bunch of numbers 7746 and 12 and 1929 and 8827 and 7 and 8837 and 128 now convert them"
# 匹配所有连续的数字序列
number_str_list = re.findall(r'[0-9]+', sample)
# 批量转成整数
number_int_list = [int(num_str) for num_str in number_str_list]

print(number_int_list)
运行结果

执行后会输出:[7746, 12, 1929, 8827, 7, 8837, 128],完全符合你想要的结果~

另外补充个小知识点:正则里的\d和[0-9]在大多数场景下效果一致,你也可以把正则写成r'\d+',得到的结果是一样的。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:48:41