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

时间:2011-06-23 19:47:57

标签: python regex string

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

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

s = 'a string with "double" quotes'

我想用一个反斜杠转义双引号。

执行以下操作并不常用,它会以两个反斜杠转义:

s.replace('"', '\\"')
'a string with \\"double\\" quotes'

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

4 个答案:

答案 0 :(得分:9)

您原来的尝试运作得很好。您看到的双反斜杠只是显示实际位于字符串中的单个反斜杠的一种方式。另见:__repr__()

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

答案 1 :(得分:8)

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

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

答案 2 :(得分:1)

这对我有用。

s.replace('"', '\\"')

答案 3 :(得分:0)

无法看到一个反斜杠,但反斜杠仍保留在字符串中。 如果你要检查相同字符串的长度,你就能看到答案。 此外,如果您将使用双引号再次替换新字符串,您将获得原始字符串。