2017-09-11 80 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://áéíóúç/()=)(){[]} 

編輯:爲了避免不必要downvotes。使用.replace並不是我們的主要關注點,因爲這個問題是由其他團隊的遺留解決方案引起的(db表中包含帶有葡萄牙語字符和正則表達式的參考數據)。

回答

2

你正在尋找一個簡單的str.replace

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

其餘\實際上是一個反斜槓,而不是一個轉義序列。

+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

我試圖避免替換,因爲有時反斜槓存在於其他字符串。 –