как заменить символ обратной косой черты пустой строкой в 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 ответов
ошибка заключается в том, что вы не добавили 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.. И как с ними обращаться..