python如何从字符串中提取数字

python如何从字符串中提取数字

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

用户关注问题

Q
如何使用Python提取字符串中的所有数字?

我有一段混合了文字和数字的字符串,想用Python快速提取出所有数字,应该用什么方法?

A

利用正则表达式提取字符串中的数字

可以使用Python的re模块,通过re.findall函数来匹配字符串中的所有数字。例如,使用正则表达式'\d+'可以匹配连续的数字字符,代码示例如下:

import re
text = 'abc123def456'
numbers = re.findall(r'\d+', text)
print(numbers)  # 输出 ['123', '456']
Q
Python如何将字符串中的数字提取后转换成整数?

提取出的字符串数字想转换成整数列表,有没有简单的方式实现?

A

将提取的数字字符串转换成整数列表

在使用正则表达式提取数字字符串后,可以通过列表推导式将其转换为整数。例如:

import re
text = 'item12price30qty5'
numbers_str = re.findall(r'\d+', text)
numbers_int = [int(num) for num in numbers_str]
print(numbers_int)  # 输出 [12, 30, 5]
Q
是否可以用Python提取字符串中的浮点数?

字符串里包含像3.14或0.001这样的数字,怎么才能用Python准确提取这些浮点数?

A

用正则表达式提取字符串中的浮点数

可以通过构造合适的正则表达式来匹配整数和浮点数,例如:

import re
text = 'price is 12.50 and discount 0.05'
floats = re.findall(r'\d+\.\d+', text)
print(floats)  # 输出 ['12.50', '0.05']

如果想包括整数和浮点数,可以用更复杂的表达式或者先匹配所有数字再转化。