2017-09-11 36 views
-1

Python 2.7とPython 3でエスケープ文字を削除するにはどうすればよいですか?文字列からエスケープ文字を削除する

例:

a = "\u00E7a\u00E7a\u00E7a=http\://\u00E1\u00E9\u00ED\u00F3\u00FA\u00E7/()\=)(){[]}" 
decoded = a.decode('unicode_escape') 
print decoded 

結果:

çaçaça=http\://áéíóúç/()\=)(){[]} 

期待される結果

çaçaça=http://áéíóúç/()=)(){[]} 

EDIT:不要なdownvotesを避けるために。 .replaceは、他のチームのレガシーソリューション(ポルトガル語の文字と正規表現を含む参照データを持つdbテーブル)によってこの問題が発生したため、主な焦点ではありません。あなたは、単純なstr.replace

>>> print decoded.replace('\\', '') 
çaçaça=http://áéíóúç/()=)(){[]} 

の残り\を探している

答えて

2

は、実際にバックスラッシュそのものではなく、エスケープシーケンスです。

+0

これは、参照データであるので、私は、.replaceを使用しないようにしようとしている、時にはそれが必要です。エスケープ文字ではなく、文字列に属しているからです。 –

+0

@ ThalesPereiraバックスラッシュがエスケープシーケンスの一部である場合、置換されません。 –

+0

@ ThalesPereira試してください: 'v = '\ xff'; v.replace( '\\'、 '')何が起こるかを見てください... –

0

は、あなたは、単に、あなたの文字列内の不要なエスケープ文字を削除することができ、すなわち

>>> a = "\u00E7a\u00E7a\u00E7a=http://\u00E1\u00E9\u00ED\u00F3\u00FA\u00E7/()=)(){[]}" 
>>> decoded = a.decode('unicode_escape') 
>>> print decoded 
çaçaça=http://áéíóúç/()=)(){[]} 
+0

私は時々バックスラッシュが他の文字列に存在するので、置換を避けようとしています。 –

関連する問題