关于 postgresql 的反斜杠

发布于 2024-10-03 07:32:26 字数 176 浏览 1 评论 0原文

我有一个菜鸟问题。

我在表中有一条看起来像 '\1abc' 的记录,

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

我对反斜杠有点困惑。我返回的字符串是 "\\1abc"

i have a noob question.

I have a record in a table that looks like '\1abc'

I then use this string as a regex replacement in re.sub("([0-9])",thereplacement,"2")

I'm a little confused with the backslashes. The string i got back was "\\1abc"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

与酒说心事 2024-10-10 07:32:26

你正在交互地使用 python 吗?

在常规字符串中,您需要在代码中转义反斜杠,或使用 r"..." (链接到 文档)。如果您以交互方式运行 python 并且不将数据库中的结果分配给变量,则会使用其 __repr__() 方法打印出来。

>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abc # <-- The actual string

另外,你的 re.sub 有点奇怪。 1)也许你的意思是[0-9]作为模式? (匹配单个数字)。如果 replacement 是您的输入,则参数也可能是 switche。这是语法:

re.sub(pattern, repl, string, count=0)

所以我的猜测是你期望这样的东西:

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

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

Are you using python interactivly?

In regular string you need to escape backslashes in your code, or use r"..." (Link to docs). If you are running python interactivly and don't assign the results from your database to a variable, it'll be printed out using it's __repr__() method.

>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abc # <-- The actual string

Also, your re.sub is a bit weird. 1) Maybe you meant [0-9] as the pattern? (Matching a single digit). The arguments are probably switche too, if thereplacement is your input. This is the syntax:

re.sub(pattern, repl, string, count=0)

So my guess is you expect something like this:

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

Edit: Tried to better explain escaping/representation.

囚你心 2024-10-10 07:32:26

请注意,您可以通过将 standard_conforming_strings 设置为 on 来使 \ 不再是转义字符。

Note that you can make \ stop being an escape character by setting standard_conforming_strings to on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文