2012-09-27 19 views
8

Estoy tratando de reemplazar una barra invertida '\' en una cadena con el siguiente códigoCómo reemplazar volver carácter de barra con la cadena vacía en Python

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

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

resultado:

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

Aquí i don' Necesito las barras diagonales inversas porque en realidad estoy analizando un archivo xml que tiene una etiqueta en el formato anterior, por lo que si hay barras invertidas, se muestra invalid token durante el análisis

¿Se puede saber cómo? para reemplazar las barras invertidas con cadena vacía en Python

Respuesta

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

El error es debido a que no agrega un carácter de escape para su '\', usted debe dar \\ para 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' 
1
>>> string = "<P style='TEXT-INDENT'>\B7 </P>" 
>>> result = string.replace("\\",'') 
>>> result 
"<P style='TEXT-INDENT'>B7 </P>" 
1

Sólo para dar usted una explicación: la barra invertida \ tiene un significado especial en muchos idiomas. En Python, tomando de la doc:

El carácter de barra invertida() se utiliza para escapar caracteres que de otro modo tienen un significado especial, como la nueva línea, la barra invertida en sí, o el carácter de comillas.

Por lo tanto, con el fin de reemplazar \ en una cadena, lo que necesita para escapar de la propia barra inversa usando "\\"

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

tiene que escapar '\' con una barra inversa extra para comparar realmente con \. . por lo que debe usar '\' ..

Ver Python Documentation - section 2.4 para toda la escape sequences en Python .. Y cómo se debe manejar ..

Cuestiones relacionadas