2014-05-21 27 views
3

好,蟒蛇比较 “ n” 转义字符 “\ n” 个

我有两个字符串,"Hello\nWorld!"Hello\\nWorld!。我必须比较那些\n\\n相等的方式。

这并不难。我只是string1.replace("\n", "\\n")

但是如果我必须对包括unicode转义码在内的所有转义字符进行转义,那么如果手动替换不是一个选项。

UPDATE

的exaple情况:

我从文件中读取Hello\nWorld!(当文件在编辑器中打开可以看到)。 Python将会看到Hello\\nWorld!

我想比较最后一个和第一个匹配的方式。

+0

什么是这里的大背景下?你是在谈论打印一个字符串和它的['repr()'](https://docs.python.org/2/reference/datamodel.html#object.__repr__)之间的区别吗?或字节字符串(''foo'')和unicode字符串('u'foo'')之间的区别?还是这些字符串来自已经做了一些转义的外部来源? –

+1

'\ x'不是unicode转义,这是显示不可打印*字节*的方式。你需要展示一些示例输入。 – roippi

+0

X是一个char(任何字符)的例子。编辑,希望现在更清楚。 –

回答

6

如何使用unicode_escape编码?

>>> 'hello\r\n'.encode('unicode_escape') == 'hello\\r\\n' 
True 
>>> 'hello\r\n' == 'hello\\r\\n'.decode('unicode_escape') 
True 

在Python 3.x中,你需要编码/解码字符串/字节:

>>> 'hello\r\n'.encode('unicode_escape').decode() == 'hello\\r\\n' 
True 
>>> 'hello\r\n' == 'hello\\r\\n'.encode().decode('unicode_escape') 
True