我正试图找出一种从字符串中提取所有字符的方法('.'
,','
,'abcdefghijklmnopqrstvwxyz'
,'/'
,'\'
等...)并隔离数字,例如:
如果我有输入:
hey.44.6 how a8re you99? -.23 4
我的程序需要能够提取每个数字:44
,6
,8
,99
,23
和4
然后给我字符串的整数(这个有6个)和数字的总和。
即使开始讨论这个问题我也很难过,而且我已经看了很多选项,包括re
。如果有人能帮我解决这个问题,我们将不胜感激。
答案 0 :(得分:3)
您可以使用re
执行此操作。这是一种方式:
>>> re.findall("[0-9]+", s)
['44', '6', '8', '99', '23', '4']
答案 1 :(得分:1)
可能比re:
快def numbers_in_string(string):
digitbuffer = ''
for char in string:
if char.isdigit():
digitbuffer += char
elif digitbuffer:
yield int(digitbuffer)
digitbuffer = ''
if digitbuffer:
yield int(digitbuffer)
>>> STRING = 'hey.44.6 how a8re you99? -.23 4'
>>> print(list(numbers_in_string(STRING)))
[44, 6, 8, 99, 23, 4]