python - Python:将整数转换为计数(即 3 --> 1,2,3)
问题描述
这可能比解释我的问题所需的信息更多,但我正在尝试将 2 个脚本(我为其他用途编写)组合在一起来执行以下操作。
目标字符串(输入文件)4FOO
2BAR
结果(输出文件)1FOO
2FOO
3FOO
4FOO
1BAR
2BAR
我的第一个脚本找到了模式并复制到 file_2
pattern = "\d[A-Za-z]{3}"
matches = re.findall(pattern, input_file.read())
f1.write('\n'.join(matches))
我的第二个脚本打开 output_file 并使用 re.sub 使用捕获组和反向引用替换和更改目标字符串。但我被困在这里如何把 ie3
变成1
2
3
.
有任何想法吗?
解决方案
这个简单的例子不需要使用正则表达式,但如果你想使用re
,这里的例子(注意:你的模式有小错误,应该是A-Z
,不是A-A
):
text_input = '4FOO 2BAR'
import re
matches = re.findall(r"(\d)([A-Za-z]{3})", text_input)
for (count, what) in matches:
for i in range(1, int(count)+1):
print(f'{i}{what}', end=' ')
print()
印刷:
1FOO 2FOO 3FOO 4FOO 1BAR 2BAR
注意:如果要支持多位数字,可以使用(\d+)
- 注意+
符号。
推荐阅读
- javascript - VueJS:如何在没有输入的情况下设置输入模型
- swift - 拍照后快速相机编辑帧
- python - 使用 irc.bot.SingleServerIRCBot 持续存在的线程(与 twitch 一起使用)
- android - 无法在 Kotlin 中初始化 GoogleMap 对象
- c# - 可以从数据集合中构建连接 - ado.net?
- java - RecyclerView 内具有多种视图类型的 Recyclerview 显示错误的布局
- html - 如何从播放列表下载音频文件?
- reactjs - 如何在 React Native 中为注销屏幕添加加载器?
- java - 仅使用 Tensor Flow Android 进行汽车检测
- hive - 在 windows server 2012 上运行 hive 时出错