替换python中的'\'字符

时间:2013-08-05 06:16:10

标签: python string

我不知道为什么我找不到它,但我想替换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

4 个答案:

答案 0 :(得分:9)

你需要用另一个反斜杠来逃避它:

 x.replace('\\', '-')

反斜杠很特别,因为它们用于将非打印字符(如换行符)引入字符串。

这也是你如何在'引用的字符串中添加'字符,这是Python认为你试图做的事情。它看到\'并将其解释为字符串中的文字引号,而不是让'结束字符串。然后它到达字符串的末尾并在字符串结尾之前找到EOL(“行尾”)。

要引入真正的反斜杠,您需要加倍它。您可以看到Python本身在打印初始字符串的表示时执行此操作:

>>> x
'hello\\world'

请注意双反斜杠。

首先在指定字符串时应该使用双反斜杠。不需要它的原因是\w不是特殊字符,因此它被解释为文字反斜杠和w。如果你说'Hello\now',你会有一个带换行符的字符串。

您也可以将字符串标记为“原始”字符串,方法是在r前加r'hello\world'。这标志着字符串不符合任何特殊字符替换的条件。

答案 1 :(得分:2)

根据docs

  

反斜杠(\)字符用于转义字符   否则具有特殊含义,例如换行符,反斜杠本身,   或引号字符。

你需要用另一个反斜杠来反斜杠:

x.replace('\\', '-')

答案 2 :(得分:1)

\'被解释为特殊字符。逃避它:

x.replace('\\', '-')

答案 3 :(得分:0)

在python中你的字符串     x ='hello \ world'     被替换为x =“hello \ world”

所以要实现你必须写

x.replace('\\','-')