如何在格式化的 python 字符串中转义单个反斜杠?



在Python 3.6 中格式化字符串的结果中包含一对反斜杠时遇到一些问题。请注意,#1 和 #2 会产生相同的不需要的结果,但 #3 会导致太多的反斜杠,这是另一个不需要的结果。

1

t = "arst '{}' arst"
t.format(d)
>> "arst '2017-34-12' arst"

阿拉伯数字

t = "arst '{}' arst"
t.format(d)
>> "arst '2017-34-12' arst"

3

t = "arst \'{}\' arst"
t.format(d)
>> "arst \'2017-34-12\' arst"

我正在寻找如下所示的最终结果:

>> "arst '2017-34-12' arst"

你的第三个例子是正确的。您可以print它以确保这一点。

>>> print(t.format(d))
arst '2017-34-12' arst

您在控制台中看到的内容实际上是字符串的表示形式。您确实可以通过使用repr.

print(repr(t.format(d)))
"arst \'2017-34-12\' arst"
#     ^------------^---Those are not actually there

反冲用于转义特殊字符。因此,在字符串文字中,反冲本身必须像这样转义。

"This is a single backlash: \"

尽管如果您希望字符串与键入的字符串完全相同,请使用 r 字符串。

r"arst '{}' arst"

在字符串前面放一个"r"以将其声明为字符串文字

t = r"arst '{}' arst"

你被输出误导了。请参阅:在 Python 字符串文字中引用反斜杠

In [8]: t = "arst \'{}\' arst"
In [9]: t
Out[9]: "arst \'{}\' arst"
In [10]: print(t)
arst '{}' arst
In [11]: print(t.format('21-1-2'))
arst '21-1-2' arst
In [12]: 

相关内容

  • 没有找到相关文章

最新更新