正则匹配中文

Posted wukejia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则匹配中文相关的知识,希望对你有一定的参考价值。

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

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

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

最小编码:一(u4e00)

最大编码:龥(u9fa5)

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

附上python代码:

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

  

以上是关于正则匹配中文的主要内容,如果未能解决你的问题,请参考以下文章

JAVA正则表达式怎么匹配所有符合要求的子字符串

正则表达式的贪婪和非贪婪模式

python 正则表达式

正则表达式匹配,匹配一段代码里的中文

Python学习笔记之正则表达式

正则表达式