2017-09-11 144 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

我试图避免替换,因为有时反斜杠存在于其他字符串。 –