python-3.x - Python,替换字符串中所有出现的模式
问题描述
我需要编写一个程序来替换字符串中的所有输入值。因此:字符串读作“[link1], [link2], [link3]”,输入是“1, 2”,我想用另一个文本替换 [link1] 和 [link2]。
我已经尝试过 replace() 和 re.sub,但这些预计只会改变模式的第一次出现。我究竟做错了什么?
for i in input:
output = string.replace(f'[link{i}]', '')
# output = re.sub(f'[link{i}]', '', string)
return output
解决方案
在您的代码中,您没有保存修改后的字符串。它只是每次更改原始字符串并且只保存一个更改。试试这样:
string = "[link1], [link2], [link3]"
INPUT = input('Give the input').split(',')
replacer = {'1' : 'ONE', "2" : 'Two', '3' : 'Three'}
for i in INPUT:
string = string.replace(f'[link{i}]', replacer[i])
print(string)
推荐阅读
- r - 预测变量中不允许使用 NA。森林小姐
- javascript - javascript调用内部函数
- amazon-web-services - 在使用 S3 REST API 端点时为 CloudFront 设置错误页面
- resharper - 如何配置 resharper 以向 C# 区域块添加注释?
- matlab - 有没有办法减少像素分隔符代码的处理时间?
- c# - 当添加到 AddRange 的表发生更改时,添加到 List (AddRange) 的项目会更改
- javascript - 将 location.hash 从当前 URL 附加到目标 URL
- scala - Scala:如何处理列表中的对象
- maven - 无法从命令行创建 Maven 父项目
- django - 如何在 Django 中部分填充表单集