错误:尝试替换为反斜杠时在位置 0 处错误转义(模式结束)

use*_*813 6 python backslash

我需要替换字符串中的单个反斜杠。我正在尝试执行 '\' 但它给了我双反斜杠。当我执行 '\' 时,它会在位置 0 处抛出错误错误转义(模式结束)

string = 'abrakadabra'
string.replace('a','\\')
#or
re.sub('a','\\','abrakadabra')

In [47]: string.replace('a','\'')
Out[47]: "'br'k'd'br'"

In [48]: string.replace('a','\')
 File "<ipython-input-48-e884682860ae>", line 1
string.replace('a','\')
                       ^
Run Code Online (Sandbox Code Playgroud)

语法错误:扫描字符串文字时 EOL

In [49]: string.replace('a','\\')
Out[49]: '\\br\\k\\d\\br\\'

In [50]: 
Run Code Online (Sandbox Code Playgroud)

期待结果:\br\k\d\br\

小智 7

您应该使用'\\\\',然后您将传递'\\'给 re,这只是一个转义的反斜杠。

print(re.sub('a','\\\\','abrakadabra'))
# \br\k\d\br\
Run Code Online (Sandbox Code Playgroud)

  • 或者明确告诉python它实际上是原始反斜杠`r'\\'` (5认同)