0

我试图找出一种方法来从字符串('.', ',', 'abcdefghijklmnopqrstvwxyz', '/', '\', 等)中提取所有字符并隔离数字,例如:

如果我有输入:

hey.44.6 how a8re you99? -.23 4

我的程序需要能够提取每个数字 : 44, 6, 8, 9923然后4给我字符串的整数个数(这个有 6 个)和数字的总和。

即使开始回答这个问题,我也很难过,而且我看过很多选项,包括re. 如果有人可以帮助我解决这个问题,将不胜感激。

4

2 回答 2

4

你可以用re. 这是一种方法:

>>> re.findall("[0-9]+", s)
['44', '6', '8', '99', '23', '4']
于 2013-09-19T07:32:09.303 回答
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]
于 2013-09-19T08:13:02.343 回答