繁体   English   中英

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

[英]Replace words between double brackets in 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)

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

my_replace_method(cmd1, dict)

我得到的 output 是"inst1.exe license.dat.dat"而不是"inst1.exe license.dat"

我对这两个命令的预期 output 是: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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM