Python - 使用string.replace转义双引号

Ste*_*hen 9 python regex string

如何在python字符串中替换"with \"?

我有一个带双引号的字符串:

s = 'a string with "double" quotes'
Run Code Online (Sandbox Code Playgroud)

我想用一个反斜杠来避开双引号.

执行以下操作并不是很有效,它有两个反斜杠:

s.replace('"', '\\"')
'a string with \\"double\\" quotes'
Run Code Online (Sandbox Code Playgroud)

打印该字符串的输出显示我想要的.但我不只是想打印正确的字符串,我希望它保存在变量中.任何人都可以用正确的魔法正则表达来帮助我吗?

小智 9

字符串正确的.但是repr将使用反斜杠转义本身来显示不可打印的字符,并且为了保持一致性(它应该形成一个Python字符串文字,在评估时,返回与输入相同的字符串repr)也会转义字符串中出现的每个反斜杠.

请注意,这是一种相当有限的转义算法.根据您的需要,您可能需要对其进行大幅扩展(或者有现成的解决方案,例如使用数据库时的预备红外语句)


ʇsә*_*ɹoɈ 9

你原来的尝试工作得很好.您看到的双反斜杠只是显示实际位于字符串中的单个反斜杠的一种方式.也可以看看:__repr__()

>>> s = 'a string with "double" quotes'
>>> ss = s.replace('"', '\\"')
>>> len(s)
29
>>> len(ss)
31
Run Code Online (Sandbox Code Playgroud)