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



我可以从用户那里接收两种类型的字符串。

  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我怎样才能写一个对两种类型的输入都有效的方法?

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

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

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

最新更新