【发布时间】:2023-11-18 03:28:02
【问题描述】:
我正在学习 python 并处理字符串以找到使用字典进行字符串替换的更好方法
我有一个字符串,其中包含我的自定义占位符,如下所示:
placeholder_prefix = '$['
placeholder_suffix = ']'
dict={'key1':'string','key2':placeholders}
msg='This $[key1] contains custom $[key2]'
我希望占位符('prefix-suffix' 和 'keys')应替换为字典中的 'value',如下所示:
'此字符串包含自定义占位符'
我可以通过编写函数获取消息:“此 [字符串] 包含自定义 [占位符]”:
def replace_all(text):
for key, value in brand_dictionary.iteritems():
text = text.replace(key, value).replace('$[', '[')
return text
我可以尝试不同的替换来删除 '$[' 和 ']' 但这可以替换作为消息本身的一部分包含的任何字符(如 '$'、'['、']')(而不是作为占位符)。所以我想避免这种情况,只替换自定义占位符。
我可以想到正则表达式(用于占位符),但由于我的消息包含多个键,所以它似乎没有用?
在python中有没有更好的方法?
【问题讨论】:
-
这是您必须以这种方式解决的某种任务吗?或者你不能只使用“格式”吗? (docs.python.org/2/library/string.html#format-string-syntax)
-
'This {key1} contains custom {key2}'.format(**dict) -
dict隐藏了内置的dict类型。 -
我需要自定义占位符(用于自定义消息中的某些部分,用于品牌推广)。格式确实适用于 %s,我知道它可以很好地与字典一起使用
标签: python string replace string-formatting