python - 解压字符串
问题描述
我收到的字符串形式a3b4x2
需要解压才能得到aaabbbbxx
。如果数字是固定的,比如这个例子,很容易解压。但是,输入可以以a1192x12
需要解压以获取aaaaaaaaaaa99xxxxxxxxxxxx
的形式或31142
以获取的形式出现3333333333344
。最有效的方法是什么?
解决方案
如果你考虑一个字母在一个或两个数字中出现的次数(不是更多),你可以使用下面的正则表达式来查找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
推荐阅读
- r - R shiny - 我在“Renderplot”中创建了一个数据框,并希望在此之外访问它。我怎样才能让它反应?
- reactjs - 如何将类组件重写为 React Functional?
- algorithm - 如何生成随机字符串类型的主键,可以自动增加长度?
- android - 添加 kotlin-kapt 插件后,Retrofit 界面中的 Kapt InvocationTargetException 异常
- r - 使用包“synthpop”来自加权原始样本的 R 合成样本
- android - 使用 ExoPlayer 时 4k 视频出现大量丢帧
- java - Log4j2 没有在午夜创建新的日志文件和备份旧的
- javascript - Material UI Data Grid:有没有办法右对齐整列?
- c# - Mongodb C#更新具有多个值的多个数组中的元素
- javascript - 将整数解析为浮点数,从输入中选择值