我不知道为什么我找不到它,但我想替换python中的特殊字符'\'
。
我有一个字符串,我有'\'
个字符,但我有信心找到解决方案,用' - '替换它。
这是我试图替换时发生的事情,
>>> x = 'hello\world'
>>> x
'hello\\world'
>>> x.replace('\', '-')
File "<stdin>", line 1
x.replace('\', '-')
SyntaxError: EOL while scanning string literal
修改 在eclipse IDLE中尝试这个吗
x = 'hello\world'
print x
x.replace('\\', '-')
print x
输出:
hello\world
hello\world
答案 0 :(得分:9)
你需要用另一个反斜杠来逃避它:
x.replace('\\', '-')
反斜杠很特别,因为它们用于将非打印字符(如换行符)引入字符串。
这也是你如何在'
引用的字符串中添加'
字符,这是Python认为你试图做的事情。它看到\'
并将其解释为字符串中的文字引号,而不是让'
结束字符串。然后它到达字符串的末尾并在字符串结尾之前找到EOL
(“行尾”)。
要引入真正的反斜杠,您需要加倍它。您可以看到Python本身在打印初始字符串的表示时执行此操作:
>>> x
'hello\\world'
请注意双反斜杠。
首先在指定字符串时应该使用双反斜杠。不需要它的原因是\w
不是特殊字符,因此它被解释为文字反斜杠和w
。如果你说'Hello\now'
,你会有一个带换行符的字符串。
您也可以将字符串标记为“原始”字符串,方法是在r
前加r'hello\world'
。这标志着字符串不符合任何特殊字符替换的条件。
答案 1 :(得分:2)
答案 2 :(得分:1)
此\'
被解释为特殊字符。逃避它:
x.replace('\\', '-')
答案 3 :(得分:0)
在python中你的字符串 x ='hello \ world' 被替换为x =“hello \ world”
所以要实现你必须写
x.replace('\\','-')