luk*_*ree 6 python regex encoding
有谁能解释我这种奇怪的行为?我希望两种替换方法可以同时工作或不工作.它只是我还是有人没有发现这是连贯的?
>>> u'è'.replace("\xe0","")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
>>> re.sub(u'è','\xe0','',flags=re.UNICODE)
''
Run Code Online (Sandbox Code Playgroud)
(请注意,我不是要求解释为什么u'è'.replace("\ xe0","")引发错误!)
\n\n\n这些方法的参数可以是 Unicode 字符串或 8 位字符串。8位字符串在执行操作之前将被转换为Unicode;Python\xe2\x80\x99s 默认会使用 ASCII 编码,因此大于 127 的字符会引发异常
\n
来自重新文档:
\n\n\n\n\n该模块提供类似于 Perl 中的正则表达式匹配操作。要搜索的模式和字符串都可以是 Unicode 字符串以及 8 位字符串。
\n
由于对于 Re 模块,您没有显式指定 Unicode 标志,因此它不会尝试转换,因此不会引发错误。这就是为什么他们的行为不连贯
\n| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |