如何从字符串中提取所有字符以隔离整数

时间:2013-09-19 07:29:22

标签: python python-3.x

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

如果我有输入:

hey.44.6 how a8re you99? -.23 4

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

即使开始讨论这个问题我也很难过,而且我已经看了很多选项,包括re。如果有人能帮我解决这个问题,我们将不胜感激。

2 个答案:

答案 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]