how to replace back slash character with empty string in python

Question:

I am trying replace a backslash ” in a string with the following code

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

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

result:

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

Here i don’t need the back slashes because actually i am parsing an xml file which has a tag in the above format, so if backslashes are there it is displaying invalid token during parsing

Can i know how to replace the backslashes with empty string in python

Answers:

The error is because you did not add a escape character to your '', you should give \ for backslash ()

In [147]: foo = "acd" # 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'
Answered By: avasal

We need to specify that we want to replace a string that contains a single backslash. We cannot write that as "", because the backslash is escaping the intended closing double-quote. We also cannot use a raw string literal for this: r"" does not work.

Instead, we simply escape the backslash using another backslash:

result = string.replace("\","")
Answered By: user647772
>>> string = "<P style='TEXT-INDENT'>B7 </P>"
>>> result = string.replace("\",'')
>>> result
"<P style='TEXT-INDENT'>B7 </P>"
Answered By: Fredrik Pihl

In Python, as explained in the documentation:

The backslash () character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character.

So, in order to replace in a string, you need to escape the backslash itself with another backslash, thus:

>>> "this is a  I want to replace".replace("\", "?")
'this is a ? I want to replace'
Answered By: Pierre GM

You need to escape ” with one extra backslash to compare actually with .. So you should use ”..

See Python Documentationsection 2.4 for all the escape sequences in Python.. And how you should handle them..

Answered By: Rohit Jain

Adding a solution if string='abcdnop.png'

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

This above won’t work as it’ll give result='abcdnop.png'.

Here if you see n is a newline character. So we have to replace backslah char in raw string(as there ‘n’ won’t be detected)

string.encode('unicode_escape')
result = string.replace("\", "")
#result=abcdnop.png
Answered By: valeriyan

Using regular expressions:

import re

new_string = re.sub("\\", "", old_string)

The trick here is that "\\" is a string literal describing a string containing two backslashes (each one is escaped), then the regex engine compiles that into a pattern that will match one backslash (doing a separate layer of unescaping).

Answered By: gerardoherreras

It’s August 2020.
Python 3.8.1
Pandas 1.1.0
At this point in time I used both the double backslash AND the r.

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

Cheers.

Answered By: rickuls
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.