我只是尝试.format()
在包含许多随机花括号的文本上使用 Python。它不起作用,因为.format()
试图替换单个花括号内的所有内容。在做了一些阅读之后,似乎我有三个不好的选择:
- 将所有这些随机大括号加倍 - 这看起来很难看
- 使用旧的字符串格式
%
- 这似乎已经过时了 - 导入模板引擎 - 这似乎有点过头了
什么是最好的选择?有更好的选择吗?
我只是尝试.format()
在包含许多随机花括号的文本上使用 Python。它不起作用,因为.format()
试图替换单个花括号内的所有内容。在做了一些阅读之后,似乎我有三个不好的选择:
%
- 这似乎已经过时了什么是最好的选择?有更好的选择吗?
这是一个简单的方法:
>>> my_string = "Here come the braces : {a{b}c}d{e}f"
>>> additional_content = " : {}"
>>> additional_content = additional_content.format(42)
>>> my_string += additional_content
>>> my_string
'Here come the braces : {a{b}c}d{e}f : 42'
此外,您可以创建一个函数来加倍大括号:
def double_brace(string):
string = string.replace('{','{{')
string = string.replace('}','}}')
return string
my_string = "Here come the braces : {a{b}c}d{e}f"
my_string = double_brace(my_string)
my_string += " : {}"
my_string = my_string.format(42)
print(my_string)
输出 :
>>> Here come the braces : {a{b}c}d{e}f : 42