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

标签 python regex string python-2.7 utf-8

Python 2.7

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

当我不使用 char 类时,

Regex 似乎工作正常。当我这样做时:

        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ιά

关于python - Python 上的正则表达式在使用 char 类时打印垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882701/

相关文章:

java - 短字符串的哈希码可以相同吗?

c# - 为 C# 包装 native DLL

python - 如何在控制台中从 Tornado 中的处理程序登录?

javascript - 允许在两个点后验证域名

python - 如何使用 docker-compose 运行 Python Django 和 Celery?

c++ - 如何考虑在正则表达式中的数字中带点

java - 如何使用 Java 正则表达式匹配 'ERA-00924' 和第一个 '<' 字符之间的所有内容?

python - 事后修复损坏的文本

javascript - Node JS 中 python 中的 auth 等价于什么?

python - MongoDB 文档中的过滤器数组