正则匹配中文

背景:项目要做国际化需求,要有中英文切换功能,所以我需要找到代码中所有包含的中文。

原理:很简单,中文在unicode 和 utf-8里都有一定的编码范围,所以我们只需要找出编码最小和最大的中文即可。

幸运的是中文在unicode 和 utf-8里编码的顺序是相同的(注:gbk编码是以拼音顺序编码的,所以如果文件时gbk编码需要先对编码进行转换)。

最小编码:一(\u4e00)

最大编码:龥(\u9fa5)

命令:egrep -nR '[一-龥]+' * --color

附上python代码:

import re
str='''
汉字文字
1234567890
abcdefghijklmnopqrstuvwxyz
-_+=!@#$%^&*()[]{};:"'<>,.?/|~ `
'''
ret1 = re.findall(u'[\u4e00-\u9fa5]+',str.decode('utf-8'))
print ret1[0]
ret2 = re.findall(r'[一-龥]+',str)
print ret2[0]

  

posted on 2018-12-03 11:53  八叶一刀  阅读(252)  评论(0编辑  收藏  举报

导航