pythonで文字と数字が混ざる文章から、文字は１文字ずつ、数字はまとまりで頭から順番に処理する方法


タイトルの通り、  
文字、数字が混ざる文章から文字は１文字ずつ、数字は次に文字が出るまでをひとまとまりとして処理したいです。  
コードはpythonです。

例えば、

[code]

    def printer(letter):
        # 本来は何らかの処理
        print(letter)
    
    sentence = "きょうは19あしたは20"
    for letter in sentence:
        if not letter.isdecimal():
            printer(letter)
        else:
            printer(letter)
    
[/code]

だと、

[code]

    き
    ょ
    う
    は
    1
    9
    あ
    し
    た
    は
    2
    0
    
[/code]

となりますが、

[code]

    き
    ょ
    う
    は
    19
    あ
    し
    た
    は
    20
    
[/code]

と処理されるような方法を知りたいです。




例えば正規表現を使うとこんな感じでできます。(python3です。)

[code]

    import re
    
    def printer(letter):
        # 本来は何らかの処理
        print(letter)
    
    sentence = "きょうは19あしたは20"
    
    for match in re.findall('[0-9]+|[^0-9]', sentence):
        printer(match)
    
[/code]

結果:

>
[code]

>     き
>     ょ
>     う
>     は
>     19
>     あ
>     し
>     た
>     は
>     20
>  
[/code]

