как заменить символ обратной косой черты пустой строкой в python

Я пытаюсь заменить обратную косую черту ' ' в строке следующим кодом

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

5 ответов


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

ошибка заключается в том, что вы не добавили escape-символ в свой '\', вы должны дать \ на 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'

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

просто чтобы дать вам объяснение: обратная косая черта \ имеет особое значение во многих языках. В Python, беря из doc:

символ обратной косой черты () используется для экранирования символов, которые в противном случае имеют особое значение, таких как новая строка, сама обратная косая черта или символ цитаты.

Итак, для того, чтобы заменить \ в строке вам нужно избежать обратной косой черты, используя "\"

>>> "this is a \ I want to replace".replace("\", "?")
'this is a ? I want to replace'

вам нужно избежать " \ " с одной дополнительной обратной косой чертой, чтобы сравнить на самом деле с \.. Поэтому вы должны использовать'\'..

посмотреть Документация Python - 2.4 для всех escape sequences в Python.. И как с ними обращаться..