今天记录一下有关python 3中正则表达式的一个小问题。
我们知道正常情况下,\w+匹配字母数字及下划线,相当于[A-Za-z0-9_]。
在python 3中我们试下\w+的匹配字符串的时候,会发现匹配会匹配到中文汉字。如下图所示:
这是什么原因呢?在python 3里面,默认的是Unicode编码。正则也是默认的编码模式。 我们知道unicode编码由字母和数字构成。这就造成了\w+可以匹配到中文。那么怎么处理呢。我们需要将正则的匹配模式修改为二进制匹配,就会得到正确的结果。flag设置为re.A就可以了。