解压字符串

2024-10-01 19:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在接收a3b4x2形式的字符串,需要对其进行解压缩以获得aaabbbbxx。如果数字是固定的,例如本例,则很容易解压缩。然而,输入可以是a1192x12的形式,需要解压缩以获得aaaaaaaaaaa99xxxxxxxxxxxx,或者是31142的形式获得3333333333344。最有效的方法是什么


Tags: 方法字符串数字形式本例aaaaaaaaaaa99xxxxxxxxxxxxaaabbbbxxa1192x12
1条回答
网友
1楼 · 发布于 2024-10-01 19:31:28

如果你认为一个字母的出现数在一个或两个数字(不多), 可以使用以下正则表达式查找形式为lettre+number的对: r"(\w)(\d{1,2})"

以下是一个可能的解决方案:

import re

samples = ["a3b4x2", "a1192x12", "31142"]

for sample in samples:
    result = ""
    for couple in re.findall(r"(\w)(\d{1,2})", sample):
        letter, number = couple
        number = int(number)
        result += letter * number
    print(result)

你会得到:

aaabbbbxx
aaaaaaaaaaa99xxxxxxxxxxxx
3333333333344

相关问题 更多 >

    热门问题