Python中正则表达式对中文的匹配
2014-05-11 01:12
Python
正则表达式
中文匹配
Unicode
摘要:Python 2 里用正则匹配中文老是踩坑,核心是要把字符串和正则统一转成 unicode 编码,记录一下正确做法。
在一些工作中需要对中文进行正则匹配,若以字符串的形式匹配,是无法实现的。 所以必须将中文字符串转换成unicode编码,将正则表达式也转换成unicode编码,正则表达式和被匹配的文本使用同样的编码,这样匹配才能成功。 unicode中中文的编码为/u4e00-/u9fa5 例如:
import re
s = 'Python中正则表达式对中文的匹配'
temp = s.decode('utf-8')
reg = u"([/u4e00-/u9fa5]+)"
m = re.compile(reg).search(temp)
if m:
print m.groups()
匹配后返回结果也是unicode编码