20

文字列のバックスラッシュ「\」を次のコードに置き換えようとしています

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でバックスラッシュを空の文字列に置き換える方法を教えてください

4

8 に答える 8

29
result = string.replace("\\","")
于 2012-09-27T09:20:13.140 に答える
4

'\'エラーは、にエスケープ文字を追加しなかったためです\\backslash (\)

In [147]: foo = "a\c\d" # 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'
于 2012-09-27T09:19:55.807 に答える
2

簡単に説明すると、バックスラッシュ\は多くの言語で特別な意味を持っています。Python では、docから取得します:

バックスラッシュ () 文字は、改行、バックスラッシュ自体、引用文字など、特別な意味を持つ文字をエスケープするために使用されます。

したがって、文字列を置き換える\には、バックスラッシュ自体をエスケープする必要があります"\\"

>>> "this is a \ I want to replace".replace("\\", "?")
'this is a ? I want to replace'
于 2012-09-27T09:27:04.887 に答える
1
>>> string = "<P style='TEXT-INDENT'>\B7 </P>"
>>> result = string.replace("\\",'')
>>> result
"<P style='TEXT-INDENT'>B7 </P>"
于 2012-09-27T09:20:22.190 に答える
0

\実際に..と比較するには、「\」をバックスラッシュ 1 つ追加してエスケープする必要があります。したがって、「\」を使用する必要があります。

Pythonのすべてのドキュメントについては、 Python ドキュメント- セクション 2.4を参照escape sequencesしてください。

于 2012-09-27T09:28:00.970 に答える