python如何从字符串提取整数

python如何从字符串提取整数

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

用户关注问题

Q
如何在Python中识别字符串中的数字?

我有一个包含文本和数字的字符串,怎样才能在Python里找到所有的整数?

A

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

可以使用Python的re模块,通过正则表达式\d+匹配字符串中的所有数字。示例代码:

import re
s = 'abc123def45'
numbers = re.findall(r'\d+', s)
ints = [int(num) for num in numbers]
print(ints) # 输出: [123, 45]

Q
有没有简单的方法把字符串里的数字部分转换成整数?

当字符串中夹杂着文字和数字,我希望只得到数字对应的整数形式,有什么简单的办法?

A

利用字符串方法和列表推导筛选数字

通过遍历字符串中的字符,判断哪些是数字字符,提取出来后组合成数字字符串,再转换成整数。示例如下:

s = 'price: 250 dollars'
numeric_str = ''.join(filter(str.isdigit, s))
num = int(numeric_str) if numeric_str else None
print(num) # 输出: 250

Q
怎样防止转换错误,当字符串中不含数字时该怎么处理?

如果字符串中没有数字,使用提取整数的方法时会报错,如何安全地处理这种情况?

A

使用条件判断避免转换异常

在提取数字前,先检查是否有匹配结果。比如用re.findall提取数字后,判断返回列表是否为空,再决定是否转换为整数。示例代码如下:

import re
s = 'no digits here'
numbers = re.findall(r'\d+', s)
if numbers:
ints = [int(num) for num in numbers]
print(ints)
else:
print('字符串中没有整数')