Skip to main content
 首页 » 编程设计

python之Python 上的正则表达式在使用 char 类时打印垃圾

2024年08月26日29sharpest

python 2.7

我正在处理一个 utf-8 编码的文件(希腊语),似乎 regex 有一些问题。

Regex 在我不使用 char 类时似乎工作正常。当我这样做时:

        text = re.sub('αυ','kk',text,flags=re.UNICODE) 

一切正常,例如“αυτιì”将转换为“kkτιì”。

但是,当我想像这样使用 char 类时:

        text = re.sub('αυ[τ]','kk',text,flags=re.UNICODE) 

显示垃圾字符,'αυτιì' 被转换为 'kk�ia'。 是编码问题还是我的 regex 有问题?打扰一下,我对 regex 的心态还很陌生。

谢谢!

请您参考如下方法:

传递 unicode 对象而不是字符串:

>>> print re.sub('αυ[τ]', 'kk', 'αυτιά', flags=re.UNICODE) 
kk▒ιά 
>>> print re.sub(u'αυ[τ]', u'kk', u'αυτιά', flags=re.UNICODE) 
kkιά