Python 关于postgresql的反斜杠

Python 关于postgresql的反斜杠,python,postgresql,Python,Postgresql,我有个问题 我在一个表中有一条记录,看起来像“\1abc” 然后我在re.sub([0-9])中使用这个字符串作为正则表达式替换,替换为“2”) 我对反斜杠有点困惑。我得到的字符串是“\\1abc”您是否以交互方式使用python 在常规字符串中,您需要在代码中转义反斜杠,或者使用r“…”(链接到)。如果您以交互方式运行python,并且没有将数据库中的结果分配给变量,那么将使用它的\uuuuu repr\uuuu()方法打印出来 >>> s = "\\1abc" >&g

我有个问题

我在一个表中有一条记录,看起来像“\1abc”

然后我在
re.sub([0-9])中使用这个字符串作为正则表达式替换,替换为“2”)


我对反斜杠有点困惑。我得到的字符串是
“\\1abc”

您是否以交互方式使用python

在常规字符串中,您需要在代码中转义反斜杠,或者使用r“…”(链接到)。如果您以交互方式运行python,并且没有将数据库中的结果分配给变量,那么将使用它的
\uuuuu repr\uuuu()
方法打印出来

>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abc # <-- The actual string
所以我猜你会期待这样的事情:

>>> s_in  = yourDbMagic() # Which returns \1abc
>>> s_out = re.sub("[0-9]", "2", s_in)
>>> print s_in, s_out
\1abc \2abc

编辑:试图更好地解释转义/表示。

您是否以交互方式使用python

在常规字符串中,您需要在代码中转义反斜杠,或者使用r“…”(链接到)。如果您以交互方式运行python,并且没有将数据库中的结果分配给变量,那么将使用它的
\uuuuu repr\uuuu()
方法打印出来

>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abc # <-- The actual string
所以我猜你会期待这样的事情:

>>> s_in  = yourDbMagic() # Which returns \1abc
>>> s_out = re.sub("[0-9]", "2", s_in)
>>> print s_in, s_out
\1abc \2abc

编辑:试图更好地解释转义/表示。

请注意,通过将标准字符串设置为on,可以使\停止作为转义字符

请注意,您可以通过将标准字符串设置为“开”,使\不再是转义字符

我已经编辑了我的子字符串。这是一个粗心的错误。实际上,我想替换“2”。哦,我不是以交互方式使用python。我已经编辑了我的子字符串。这是一个粗心的错误。实际上,我想替换“2”。哦,我不是以交互方式使用python。我同意:使用标准的_-strings=on是一种方式。顺便说一句:这是现在9.0中的默认设置。我同意:使用标准的\u一致性\u strings=on是一个不错的选择。顺便说一句:这是现在9.0中的默认设置。