20

我正在尝试用以下代码替换字符串中的反斜杠“\”

string = "<P style='TEXT-INDENT'>\B7 </P>"

result = string.replace("\",'')

结果:

------------------------------------------------------------
   File "<ipython console>", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal

在这里我不需要反斜杠,因为实际上我正在解析一个带有上述格式标签的 xml 文件,所以如果有反斜杠,它会invalid token在解析过程中显示

我能知道如何在python中用空字符串替换反斜杠吗

4

8 回答 8

29
result = string.replace("\\","")
于 2012-09-27T09:20:13.140 回答
4

该错误是因为您没有向您的 中添加转义字符'\',您应该\\backslash (\)

In [147]: foo = "a\c\d" # example string with backslashes

In [148]: foo 
Out[148]: 'a\\c\\d'

In [149]: foo.replace('\\', " ")
Out[149]: 'a c d'

In [150]: foo.replace('\\', "")
Out[150]: 'acd'
于 2012-09-27T09:19:55.807 回答
2

只是给你一个解释:反斜杠\在许多语言中都有特殊的含义。在 Python 中,取自doc

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

因此,为了替换\字符串,您需要使用转义反斜杠本身"\\"

>>> "this is a \ I want to replace".replace("\\", "?")
'this is a ? I want to replace'
于 2012-09-27T09:27:04.887 回答
1
>>> string = "<P style='TEXT-INDENT'>\B7 </P>"
>>> result = string.replace("\\",'')
>>> result
"<P style='TEXT-INDENT'>B7 </P>"
于 2012-09-27T09:20:22.190 回答
1

如果添加解决方案string='abcd\nop.png'

result = string.replace("\\","")

上面的这行不通,因为它会给result='abcd\nop.png'.

如果您看到这里\n是换行符。所以我们必须替换原始字符串中的反斜杠字符(因为不会检测到'\ n')

string.encode('unicode_escape')
result = string.replace("\\", "")
#result=abcdnop.png
于 2020-07-20T12:34:20.480 回答
1
import re

new_string = re.sub(r"\\\\",r" ",old_string)
于 2020-08-05T21:09:20.233 回答
0

您需要用一个额外的反斜杠转义 '\' 才能与\.. 进行实际比较。所以您应该使用 '\'..

有关 Python中的所有内容,请参阅Python 文档- 第 2.4 节escape sequences。以及您应该如何处理它们。

于 2012-09-27T09:28:00.970 回答
0

现在是 2020 年 8 月
。Python 3.8.1
Pandas 1.1.0
此时我同时使用了双 \ 反斜杠和 r。

df.replace([r'\\'], [''], regex=True, inplace=True)

干杯。

于 2020-08-15T01:10:26.840 回答