一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

python利用正则表达式匹配用户名(可包含中文)

时间:2014-09-19 编辑:简简单单 来源:一聚教程网

以前的用户名直接用^[a-zA-Z][a-zA-Z0-9_]{3,19}限定就是了。只是限定以字符开始,最少4个字符,最多20个字符就行了。

这次需求有点不一样,可以输入中文,正则就需要改一下了。

^[\x80-\xffa-zA-Z][\x80-\xffa-zA-Z0-9]{3,19}

看如下Python代码

 代码如下 复制代码
source = "我们一起学Python吧"
 
match = re.match(r'^[\x80-\xffa-zA-Z][\x80-\xffa-zA-Z0-9]{3,19}', source)
if match:
    print match.group()
else:
    print 'no match'

匹配结果是:
我们一起学Pytho

  (罗嗦下)确保所有编码都为 unicode
比如 str.decode('utf8') #从utf8文本中
              u"啊l"  #在控制台输出中   
       本想使用参考一定编码 Hex 但郁闷的是 这每个字好像占2个位置,使用正则匹配无果。
    其次,确定中文范围 : [u4e00-u9fa5]
          (这里注意下 python 的re写的时候) 要  u"[u4e00-u9fa5]" #确定正则表达式也是 unicode 的

特别提示:在这里一个中文字符当作3个字符处理,不过有6个中文字符也就够了

热门栏目