【问题标题】:Regex on Python prints Garbage when use char classPython 上的正则表达式在使用 char 类时打印垃圾
【发布时间】:2015-03-09 01:56:23
【问题描述】:

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 的心态很陌生。

谢谢!

【问题讨论】:

    标签: python regex string python-2.7 utf-8


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 2021-07-12
      • 1970-01-01
      • 2013-10-23
      • 2019-05-19
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多