【问题标题】:Python, replace all occurrences of the pattern in a stringPython,替换字符串中所有出现的模式
【发布时间】:2021-10-23 13:09:30
【问题描述】:

我需要编写一个程序来替换字符串中的所有输入值。因此:字符串读取为“[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

【问题讨论】:

  • 如果要替换多个字符串,请多次调用replace
  • 你不能将选项12 连接成一个看起来像link[12] 的模式,然后使用re.sub 匹配link1link2

标签: python-3.x regex replace


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 2014-08-05
    • 2019-01-10
    • 2018-07-11
    • 2012-08-01
    • 2022-12-03
    • 2011-12-19
    相关资源
    最近更新 更多