我有

foo = '/DIR/abc'


我想将其转换为

bar = '\\MYDIR\data\abc'


因此,这是我在Python中所做的工作:

>>> foo = '/DIR/abc'
>>> bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
  File "<stdin>", line 1
    bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
                                                 ^
SyntaxError: EOL while scanning string literal


但是,如果我尝试通过输入bar = foo.replace(r'/DIR/',r'\\MYDIR\data\\')来转义最后一个反斜杠,那么我会得到这种怪异现象:

>>> bar2
'\\\\MYDIR\\data\\\\abc'


救命!这让我发疯。

最佳答案

第二个参数应该是字符串,而不是正则表达式模式:

foo.replace(r'/DIR/', '\\\\MYDIR\\data\\')

08-03 15:13