如何在python中用空字符串替换反斜杠字符

时间:2012-09-27 09:18:37

标签: python replace

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

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

中用空字符串替换反斜杠

8 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:4)

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

In [147]: str = "a\c\d"

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

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

In [150]: str.replace('\\', "")
Out[150]: 'acd'

答案 2 :(得分:1)

>>> string = "<P style='TEXT-INDENT'>\B7 </P>"
>>> result = string.replace("\\",'')
>>> result
"<P style='TEXT-INDENT'>B7 </P>"

答案 3 :(得分:1)

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

  

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

因此,为了替换字符串中的\,您需要使用"\\"

来转义反斜杠本身
>>> "this is a \ I want to replace".replace("\\", "?")
'this is a ? I want to replace'

答案 4 :(得分:1)

如果有<h1>Project</h1> <button onclick="togglePython()">Toggle</button> <div class="python"> <h2>Python</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <div> <h2>C#</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <div> <h2>JS</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div> <div class="python"> <h2>Python</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </div>

,则添加解决方案
string='abcd\nop.png'

以上操作无效,因为它会给出result = string.replace("\\","")

如果您看到result='abcd\nop.png'是换行符。因此,我们必须在原始字符串中替换backslah char(因为不会检测到\ n)

\n

答案 5 :(得分:0)

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

请参阅Python Documentation - section 2.4了解Python中的所有escape sequences ..以及您应如何处理它们。

答案 6 :(得分:0)

重新导入

new_string = re.sub(r“ \\”,r“”,old_string)

答案 7 :(得分:0)

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

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

干杯。