我在加强Python正则表达式方面遇到了问题,我正在做以下尝试:
import re
ER = re.compile(r'\w', re.L)
print(ER.sub('.','Maçã'))
..çã
即使使用re.compile
传递语言环境作为参数,也无法识别重音符号。
有人有这个问题吗?
谢谢!
答案 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'))
非常感谢!!! :)