我正在阅读 python 2.7 的文档,我只是不明白 Raw-Unicode-Escape encoding .原始文档如下:
对于专家来说,还有一种原始模式,就像普通字符串的模式一样。您必须在开头引号前加上 ‘ur’ 才能让 Python 使用 Raw-Unicode-Escape 编码。如果小“u”前面的反斜杠数量不均匀,它只会应用上面的\uXXXX 转换。
而且我想知道为什么所需的反斜杠数量不均匀。这只是一个规则还是由于其他原因?
最佳答案
\uXXXX
转义是在原始字符串中专门处理的,正如您引用的文本所描述的那样。 ur'\\\\'
是一个包含四个反斜杠的字符串,而 ur'\\\u0020\\'
是四个反斜杠和一个空格。如果我不得不猜测为什么要识别 \u
必须有不均匀数量的反斜杠,我猜这是因为非原始字符串解析器也是这样工作的(我还没有查看源代码来确定)。
为什么这个问题可能归结为 python 2 的“因为它是这样定义的”。Python 3 不再这样做了 - r'\\\u0020\\'
与
'\\\\\\u0020\\\\'
。
关于python-2.7 - Python Raw-Unicode-转义编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43013655/