📅  最后修改于: 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中内置字符串方法的相关文档。