Python向前替换(\)with forward(/)

时间:2017-10-03 07:22:15

标签: python

我正在尝试将\替换为/。但是,我没有成功。 以下是我想要实现的场景的快照

string = "//SQL-SERVER/Lacie/City of X/Linservo\171002"        
print string.replace("\\","/")  

输出:

//SQL-SERVER/Lacie/City of X/Linservoy002  

期望的输出:

//SQL-SERVER/Lacie/City of X/Linservo/171002

4 个答案:

答案 0 :(得分:1)

你需要逃避" \"额外的" \"。

>>> string = "//SQL-SERVER/Lacie/City of X/Linservo\\171002"
>>> string
'//SQL-SERVER/Lacie/City of X/Linservo\\171002'  
>>> print string.replace("\\","/")
//SQL-SERVER/Lacie/City of X/Linservo/171002

答案 1 :(得分:1)

string = r"//SQL-SERVER/Lacie/City of X/Linservo\171002"
print string.replace("\\","/")

输出

//SQL-SERVER/Lacie/City of X/Linservo/171002

答案 2 :(得分:0)

替换函数和字符串定义中都有错误。

  • 在字符串定义中\171给出八进制值为171的字符 - y
  • 在你替换函数时,反斜杠转义为引用。

你应该逃避反斜杠

string = "//SQL-SERVER/Lacie/City of X/Linservo\\171002"
string.replace("\\","/")

答案 3 :(得分:-2)

你可以简单地使用" .replace"在python中或如果你想要你可以使用正则表达式:

import re
string = r"//SQL-SERVER/Lacie/City of X/Linservo\171002"

pattern=r'[\\]'

replaced_string=re.sub(pattern,"/",string)

print(replaced_string)

由于您的原始问题显示:"X/Linservo\171002"此处\171指的是字符编码,因此它将\171替换为"y"。你可以在python解释器中试试这个:

In[2]: print("\171")

y
相关问题