1. 程式人生 > >正則匹配中文

正則匹配中文

背景:專案要做國際化需求,要有中英文切換功能,所以我需要找到程式碼中所有包含的中文。

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