这个问题在这里已有答案:
我尝试了这个,但没有奏效。
import re
s = "Ex\am\ple String"
replaced = re.sub("\", "/", s)
print replaced
有什么建议?
只需使用此代码:
s = s.replace("\\", "/")
它用正斜杠替换所有反斜杠。两个反斜杠的原因是因为你必须逃避另一个反斜杠。
用\\\\
这样试试吧:
import re
s = "Ex\am\ple String"
replaced = re.sub("\\\\", "/", s)
print replaced
你可能没有使用足够的反斜杠。反斜杠通常是一个转义字符。尝试使用一个\,然后两个\来评论这里,你会注意到你只在输出中得到一个。
我输入的代码版本来显示我的意思:
Backslash is often an escape character. Try commenting here using one \,
then two \\, you'll notice you only get one in the output here.
当我剪切和粘贴文件位置时,我在R中编写了类似的代码
fileLoc = function(){
Rlocation = gsub( "\\\\","/",readClipboard())
return(Rlocation)
}
请注意,它需要4个反斜杠。
请尝试以下方法:
s = "Ex\am\ple String"
replaced = re.sub("\\\\", "/", s)
你有两个问题:首先,你的字符串不是你想象的那样,因为'\a'
被解释为一个逃避文字。要解决此问题,请使用raw或regex字符串,
s = r"Ex\am\ple String"
现在你可以做你想要的了
replaced = re.sub(r"\\", "/", s)
在这里,需要两个\
因为re
期望单个\
成为逃脱角色。此外,r"\\"
需要是原始字符串,因为Python通常也将"\"
解释为转义字符。为了“逃脱逃脱角色”本身,你可以再次做双\
技巧,所以另一种做法是
replaced = re.sub("\\\\", "/", s)
逃避和re
模块放在一边,对于像这样的简单替换,你应该使用str
replace
方法,
replaced = s.replace("\\", "/")
(“只有”两个\
需要因为我们只使用“裸”Python,而不是re
)