3

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

4 回答 4

10

您需要使用另一个反斜杠对其进行转义:

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

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

这也是您将'字符添加到带'引号的字符串的方式,这是 Python 认为您正在尝试做的事情。它在字符串中看到\'并解释为文字引号,而不是让'字符串结束。然后它到达字符串的末尾并在字符串的末尾找到EOL(“行尾”)。

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

>>> x
'hello\\world'

注意双反斜杠。

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

r您还可以通过在字符串前面加上as in来将字符串标记为“原始”字符串r'hello\world'。这将字符串标记为不符合任何特殊字符替换的条件。

于 2013-08-05T06:17:56.620 回答
2

根据文档

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

您需要用另一个反斜杠转义反斜杠:

x.replace('\\', '-')
于 2013-08-05T06:18:07.323 回答
1

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

x.replace('\\', '-')
于 2013-08-05T06:17:50.123 回答
0

在 python 中,您的字符串 x = 'hello\world' 被替换为 x = "hello\world"

所以要实现你必须写

x.replace('\\','-')
于 2013-08-05T06:23:35.327 回答