首页 > 解决方案 > 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

标签: python-3.xregexreplace

解决方案


在您的代码中,您没有保存修改后的字符串。它只是每次更改原始字符串并且只保存一个更改。试试这样:

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)

推荐阅读