0

文字列からすべての文字を抽出する方法を見つけようとしています ( '.', ',', 'abcdefghijklmnopqrstvwxyz', '/','\'など...) 、たとえば数字を分離します:

入力がある場合:

hey.44.6 how a8re you99? -.23 4

私のプログラムは、各数字 : 446899を抽出し、文字列が持つ整数の数 (これは 6 です) と数字の合計を得ることができる必要があります。234

私はこの質問を始めるのに本当に苦労していますre. 誰かがこれを理解するのを手伝ってくれるなら、それは大歓迎です。

4

2 に答える 2

4

でできますre。1 つの方法を次に示します。

>>> 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 に答える