替换python中双括号之间的单词

2024-06-02 11:43:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以从用户处接收2种类型的字符串

  1. cmd1 = inst1.exe license.dat
  2. cmd2 = {{installer}} {{license}}

我必须用字典中的东西替换大括号之间的字符串({'installer': 'inst1.exe', 'license': 'license.dat'}

我正在尝试这样的事情:

def my_replace_method(cmd, dict)
    for key, value in dictionary.items():
        cmd.replace(key, value)

电话:

my_replace_method(cmd2, dict)

我得到的输出是:"{{inst1.exe}} {{license.dat}}",而不是"inst1.exe license.dat"

my_replace_method(cmd1, dict)

我得到的输出是"inst1.exe license.dat.dat",而不是"inst1.exe license.dat"

这两个命令的预期输出是: inst1.exe license.dat 如何编写一个同时适用于两种输入类型的方法


Tags: key字符串cmd类型licensemyinstallerexe
1条回答
网友
1楼 · 发布于 2024-06-02 11:43:29

您应该使用cmd.replace("{{"+key+"}}", value)cmd.replace('{{%s}}'%key, value),因为只使用replace替换文本,而只使用替换您给定的文本。
所以如果你想匹配大括号,你需要包括大括号

编辑:
这两个错误的原因如下:

  • 大括号不在旧字符串中(也就是说,您没有用新字符串替换大括号),因此它们被留在后面,因此产生了额外的大括号
  • 由于大括号不在旧字符串中,Python将license替换为license.dat,而不是将{{licence}}替换为license.dat。因此license.dat变为license.dat.dat

相关问题 更多 >