【问题标题】:Python - escaping double quotes using string.replacePython - 使用 string.replace 转义双引号
【发布时间】:2011-09-21 12:45:58
【问题描述】:

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

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

s = 'a string with "double" quotes'

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

执行以下操作并不完全有效,它使用两个反斜杠转义:

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

打印该字符串的输出显示了我想要的。 但我不只是想打印正确的字符串,我希望它保存在一个变量中。 谁能帮我正确的神奇正则表达式?

【问题讨论】:

    标签: python regex string


    【解决方案1】:

    这为我完成了这项工作。

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

    【讨论】:

      【解决方案2】:

      您最初的尝试效果很好。您看到的双反斜杠只是显示字符串中实际存在的单个反斜杠的一种方式。另见:__repr__()

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          请注意,这是一个相当有限的转义算法。根据您的需要,您可能需要对其进行显着扩展(或者有现成的解决方案,例如使用数据库时预先准备好的语句)

          【讨论】:

            猜你喜欢
            • 2020-11-26
            • 1970-01-01
            • 1970-01-01
            • 2015-09-06
            • 1970-01-01
            • 2013-06-17
            • 1970-01-01
            • 2013-08-09
            • 1970-01-01
            相关资源
            最近更新 更多