2016-08-17 33 views
2
a="D:/R_SVN/hostworkspace/middleware/projects/module/com.ofss.fc.module.ac/src/com/ofss/fc/app\ac\service\writeoffrecovery\ext\WriteoffRecoveryApplicationServiceExtExecutor.java" 

b=a.replace('\','/') 

print b 

錯誤:如何更換 ' '與'/'

b=a.replace('\','/') 

語法錯誤:EOL while scanning string literal

+0

反斜槓在字符串中一個特殊字符。你需要逃避它。 –

+0

將第一個「\\」加倍以避開它。 – mgilson

回答

3

由於「反斜槓符號」用於「轉義字符」,因此您有添加\\而不是\

a.replace('\\','/') 
2

你必須轉義反斜線,因爲這是一個特殊的字符:

b=a.replace('\\','/') 
+0

@Downvoter:請解釋爲什麼? – Jens

1

在串\是轉義字符e.g如果有兩個\像\\然後第一個是轉義字符。

in b=a.replace('\','/')'\'被讀作轉義字符。所以你可以用\\替換它。在這種情況下,第一個\將被轉義,第二個將對字符串a執行操作。

代碼

>>> a="D:/R_SVN/hostworkspace/middleware/projects/module/com.ofss.fc.module.ac/src/com/ofss/fc/app\ac\service\writeoffrecovery\ext\WriteoffRecoveryApplicationServiceExtExecutor.java" 
>>> b=a.replace('\\','/') 
>>> print b 
D:/R_SVN/hostworkspace/middleware/projects/module/com.ofss.fc.module.ac/src/com/ofss/fc/appc/service/writeoffrecovery/ext/WriteoffRecoveryApplicationServiceExtExecutor.java