重音字符问题

时间:2011-01-24 12:36:35

标签: python regex unicode

我在加强Python正则表达式方面遇到了问题,我正在做以下尝试:

import re
ER = re.compile(r'\w', re.L)
print(ER.sub('.','Maçã'))

..çã

即使使用re.compile传递语言环境作为参数,也无法识别重音符号。 有人有这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

最好使用re.U unicode标志。

如果使用Python 2.x,您还需要将字符串指定为unicode,即

print(ER.sub('.', u'Maçã'))

答案 1 :(得分:4)

来自http://www.regular-expressions.info/python.html

  

默认情况下,Python的正则表达式引擎只考虑字母A到Z,数字0到9以及下划线作为“单词字符”。指定标志re.L或re.LOCALE以使\ w匹配在给定当前区域设置的情况下被视为字母的所有字符。或者,您可以指定re.U或re.UNICODE将所有脚本中的所有字母视为单词字符。该设置也会影响字边界。

尝试使用re.UNICODE。

答案 2 :(得分:0)

我遇到了问题!我试图在shell中使用此代码。所以,我需要以这种方式使用:

导入重新 ER = re.compile(r'\ w',re.L) ER.sub('。',unicode('Maça','utf-8'))

非常感谢!!! :)