当前位置: 首页 > 知识库问答 >
问题:

如何将双反斜杠替换为单反斜杠[重复]

白彦
2023-03-14

许多发现都是针对python2的,我的例子是python3:

我需要把双背斜线换成单背斜线

a = “RXIE 服务器\\MSSQLSERVER_NEW”

这篇文章中的“接受答案”python3用单反斜杠替换双反斜杠在这里不起作用:

那么问题出在哪里呢?非常感谢。

[更新]:

由于@ShadowRanger的回复,所以如果在替换操作后打印字符串,它是预期的,但是,在我的情况下,我需要连接替换后生成另一个变量(conn_str),正如你所看到的,它仍然显示双反斜杠。

有解决办法的线索吗?

谢谢。

server = str.replace(data['server'], "\\\\", "\\")
database = data['database']
driver = data['driver']
auth = data['auth']

conn_str = "DRIVER={" + driver + "}; SERVER=" + server + "; Database=" + database + ";" + auth

共有1个答案

司徒博容
2023-03-14
a = 'RXIE-SERVER\\MSSQLSERVER_NEW'

没有双反斜杠。它有一个转义的单个反斜杠,它只是更安全(并且最终需要)转义它,所以Python不认为\M是字符串转义的尝试。如果您这样做:

print(a)

您将看到它只打印一个反斜杠(因为print输出原始数据而不显示转义)。

< code>a.replace('\\ ',' ')不起作用的原因是因为它没有用任何东西替换单个反斜杠(并且它将对所有反斜杠都这样做);< code>a.replace('\\\\ ',' \\')不起作用,因为< code>'\\\\'表示实际的双反斜杠,而您没有其中任何一个。

如果你的输入来自其他来源(不是你描述的文字),并且实际上有一个双反斜杠,那么a.replace('\\\\','\\')实际上有效,但是REPL的回声是对象的repr,对于str,这意味着添加反斜杠转义以使其成为合法的,等效的str字面量,所以它看起来像一个双反斜杠,但只有一个。如果您更改

如果您不喜欢它在代码中的样子,请使用原始字符串来消除对转义的需要:

a = r'RXIE-SERVER\MSSQLSERVER_NEW'
#   ^ note prefix that makes it raw

 类似资料:
  • 我需要将python3中的替换为复杂字符串中的。我知道这个问题已经被问了好几次,但大多数时候都是针对简单字符串,所以没有一个(接受的)答案真正适用于复杂字符串。 这也不同于使用无法解决此问题。请参见下文。 假设字符串是: 直截了当的方法是: 这导致: 语法错误:扫描字符串文字时EOL 这个答案建议使用: 这导致: 所以,没有变化。 这个答案表明: 但是对于如此复杂的字符串,这并不适用: unico

  • 问题内容: 我有一个字符串“ \\ u003c”,它属于UTF-8字符集。由于存在双反斜杠,因此我无法将其解码为unicode。如何从“ \\ u003c”获取“ \ u003c”?我正在使用Java。 我尝试过 但无法实现我想要的。 这是我的代码 文件的内容是 \ u003c 问题答案: 不知道您是否仍在寻找解决问题的方法(因为您已经接受了答案),但是我仍然会添加我的答案作为针对 所述问题 的可

  • 我有以下路径:,我想将其转换为: 我试图将上面的路径附加到这个路径:with但是当我将两个字符串附加在一起时,这是输出: 下面是有问题的代码: 由于斜杠的原因,附加的路径未被视为文件夹。有什么帮助吗? 编辑:只是澄清一下,完整路径(两个附加字符串)实际上是一个文件夹。

  • 问题内容: 这是一个“到底发生了什么”的问题。我实际上不需要解决方案。 我必须用双反斜杠替换字符串中的所有单反斜杠。这就是我最终要做的… …其中strRootDirectory是上面的java.lang.String。 现在,我了解了第一个参数的四个反斜杠:regex期望两个反斜杠以表示单个文字反斜杠,而Java希望它们加倍。没关系。 但是,第二个参数的八个反斜杠到底是怎么回事?替换字符串不是应该

  • 问题内容: 我正在将CSV文件导入MySQL数据库。可以通过支持文件路径中的正斜杠来实现。如果用户给出路径 MySQL不支持这种类型的路径模式。我想在路径中搜索反斜杠并将其替换为正斜杠,以实现以下目的: 怎么做? 问题答案: 在Java中,使用以下命令: 注意,这里不需要replace的正则表达式版本,即;仍会替换所有出现的搜索词,但会搜索 文字 字符串,而不是正则表达式匹配项。

  • 问题内容: 我正在尝试将转换为,但是我不断遇到各种错误。我认为这是解决方案: 但这给出了以下异常: 问题答案: 将该参数解释为正则表达式。该是转义字符都 和。你需要对正则表达式进行两次转义: 但是你不必为此使用正则表达式,仅是因为你希望逐个字符地进行精确替换,并且这里不需要模式。因此就足够了: 更新:根据注释,你似乎想在JavaScript上下文中使用字符串。你最好使用它来覆盖更多字符。