Python中相当基本的字符串扩展?

The*_*rse 3 python string function python-3.x

我正在尝试创建一个将采用"压缩"字符串的函数

'a12b3c'
Run Code Online (Sandbox Code Playgroud)

并返回其"扩展"形式,这个例子就是这样

'aaaaaaaaaaaabbbc'
Run Code Online (Sandbox Code Playgroud)

假设每个字符重复次数与下面的数字相同,或者如果字符后面没有数字则重复一次.

我已经能够创建一个函数,如果"压缩"字符串中的数字值只是一位数字,这将执行此操作,所以我的尝试适用于像

'a3b2c6'
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到一种方法来考虑数值超过一位数的情况.

Eug*_*ash 7

使用正则表达式:

>>> import re
>>> compressed = "a12b3c"
>>> expanded = ""
>>> for char, count in re.findall(r'(\w)(\d+)?', compressed):
...     count = int(count or 1)
...     expanded += char*count
... 
>>> expanded
'aaaaaaaaaaaabbbc'
Run Code Online (Sandbox Code Playgroud)