如何使用Python从字符串各片段中提取所有整数?
Python字符串提取数字实现方案
正确实现代码
import re data = 'hs122 125 &55,58, 25' # 匹配所有连续数字序列后转为整数 res = [int(num) for num in re.findall(r'\d+', data)] print(res)
运行输出:[122, 125, 55, 58, 25],完全符合预期。
之前方案的问题说明
- 尝试1使用
re.search():该方法仅会返回第一个匹配到的结果,无法拿到所有数字 - 尝试2按空格拆分后用
isdigit()判断:夹杂非数字字符的拆分片段(如hs122、&55,58,)会被直接过滤,导致漏匹配 - 尝试3正则规则设计错误:规则将逗号纳入合法匹配范围,导致多个逗号分隔的数字被识别为同一个匹配结果
扩展说明
如果需要同时提取带小数点的浮点数,可将正则修改为r'\d+\.?\d*',转换时根据是否包含小数点判断转为int还是float即可。
内容的提问来源于stack exchange,提问作者Md Moksedul Alam
相关产品推荐
相关产品推荐

