正则匹配中文

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

原理:很简单,中文在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]

  

原文地址:https://www.cnblogs.com/wukejia/p/10057644.html