如何在字符串找到数字python

如何在字符串找到数字python

作者:William Gu发布时间:2026-01-14阅读时长:0 分钟阅读次数:5

用户关注问题

Q
Python中有哪些方法可以提取字符串中的数字?

我想从一个包含字母和数字的字符串里提取所有数字,有哪些简单有效的Python方法可以实现这一功能?

A

使用正则表达式提取数字

Python中的re模块提供了强大的正则表达式支持,可以通过re.findall()函数找到字符串中的所有数字。示例代码:

import re
s = 'abc123def456'
numbers = re.findall(r'\d+', s)
print(numbers) # 输出 ['123', '456']

Q
如何获得字符串中的单个数字并转换成整数列表?

我想把字符串里的每个数字字符抽离出来,并转换成数字类型,方便后续计算,应该怎么操作?

A

使用列表推导式和字符串方法提取单个数字

可以遍历字符串的每个字符,判断是否为数字,是数字则转换为int类型,示例如下:

s = 'a1b2c3'
digits = [int(ch) for ch in s if ch.isdigit()]
print(digits) # 输出 [1, 2, 3]

Q
如何处理字符串中带有小数点的数字提取?

字符串中有一些数字是浮点数格式(含小数点),怎样利用Python准确提取这些数字?

A

正则表达式匹配整数和浮点数

通过正则表达式可以匹配整数和小数,模式可以设计为 r'\d+.?\d*',示例:

import re
s = '价格是12.5元,税费2.3元'
numbers = re.findall(r'\d+.?\d*', s)
print(numbers) # 输出 ['12.5', '2.3']