关于 postgresql 的反斜杠
我有一个菜鸟问题。
我在表中有一条看起来像 '\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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你正在交互地使用 python 吗?
在常规字符串中,您需要在代码中转义反斜杠,或使用 r"..." (链接到 文档)。如果您以交互方式运行 python 并且不将数据库中的结果分配给变量,则会使用其 __repr__() 方法打印出来。
另外,你的 re.sub 有点奇怪。 1)也许你的意思是[0-9]作为模式? (匹配单个数字)。如果
replacement
是您的输入,则参数也可能是 switche。这是语法:所以我的猜测是你期望这样的东西:
编辑:试图更好地解释转义/表示。
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.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:So my guess is you expect something like this:
Edit: Tried to better explain escaping/representation.
请注意,您可以通过将 standard_conforming_strings 设置为 on 来使 \ 不再是转义字符。
Note that you can make \ stop being an escape character by setting standard_conforming_strings to on.