2012-09-27 1 views
8

はどのように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ファイルを解析しているのでバックスラッシュが必要なので、バックスラッシュがあればそれは表示中です

パイソン

答えて

11
result = string.replace("\\","") 
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' 
1
>>> string = "<P style='TEXT-INDENT'>\B7 </P>" 
>>> result = string.replace("\\",'') 
>>> result 
"<P style='TEXT-INDENT'>B7 </P>" 
1

ため\\を与えるべきですあなたの説明:バックスラッシュ\は多くの言語で特別な意味を持っています。 Pythonでは、docから取っ:

バックスラッシュ()文字は、改行文字、バックスラッシュ自体、または引用符文字としてそれ以外の場合は特別な意味を持つ文字をエスケープするために使用されます。

だから、

、文字列内の\を交換するために、あなたはあなたがエスケープする必要が"\\"

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

を使用して、バックスラッシュ自体をエスケープする必要がある「\」\で実際に比較するための1つの余分バックスラッシュを持ちます。 。だから、 '\' を使用しなければならない。..

Python Documentationを参照してください - Pythonですべてescape sequencesためsection 2.4 ...そして、あなたがそれらをどのように扱うか...

関連する問題