📜  如何从字符串python中提取整数(1)

📅  最后修改于: 2023-12-03 15:23:48.143000             🧑  作者: Mango

如何从字符串中提取整数

在Python的字符串操作中,经常需要从一些包含数字的字符串中提取整数。这个过程可以通过正则表达式来实现,同时也可以通过内置函数实现。下面我们讨论其中两种方法:

方法一:使用正则表达式

通过正则表达式,我们可以很方便地从字符串中提取数字。Python中的re模块可以用来实现正则表达式的相关功能。

import re

text = "这里有一串数字123456和另外一个数字7890"
nums = re.findall(r'\d+', text)
print(nums)

上述代码会输出:

['123456', '7890']

注意,通过re.findall得到的结果仍然是字符串类型。如果想要将结果转化为整数,可以通过map函数实现:

import re

text = "这里有一串数字123456和另外一个数字7890"
nums = list(map(int, re.findall(r'\d+', text)))
print(nums)

这个时候输出的结果就是:

[123456, 7890]
方法二:使用内置函数

除了通过正则表达式来获取字符串中的整数,还可以通过Python内置函数来实现。

text = "这里有一串数字123456和另外一个数字7890"
nums = [int(s) for s in text.split() if s.isdigit()]
print(nums)

上述代码中,text.split()是将字符串分割成序列。我们之所以使用这个方法是因为,通过split()函数分割的字符串序列中,刚好会有整型元素和非整型元素(其中包含了带符号的数字和小数等)。因此,我们需要使用isdigit()函数来进行筛选。最终返回的结果是:

[123456, 7890]

这种方法的优点是在一些特殊的场景下适用范围会更广。同时,在一些比较复杂的字符串情况下,正则表达式会相对繁琐,因此使用内置函数可以很好地完成相应任务。

以上就是如何从字符串中提取整数的两种方法。对于更多的字符串操作,可以查看Python中内置字符串方法的相关文档。