码迷,mamicode.com
首页 > 编程语言 > 详细

python中正则表达式在中文字符串匹配时的坑

时间:2019-02-27 21:59:25      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:匹配   中文字符串   文字   att   python   编码问题   arch   utf8   今天   

  之前一直有使用python 正则表达式来做中文字符串或者中英文数字混合的字符串的匹配,发现有不少情况下会匹配失灵或者结果混乱,并且在不同操作系统上匹配结果也不一致,查了很久都不知道是什么原因。今天终于彻底弄懂了,原来还是python中对中文的编码问题造成的。

  解决办法:

    step1 在设置默认编码为UTF8之后,将正则表达式和待匹配字符串都decode("utf8")统一成 unicode再进行匹配;

    step2 正则表达式前面一定要加 r ;

示例代码:

        kw_regexp = r微信+ kw_str.decode("utf8")
        pattern = re.compile(kw_regexp, re.I)
        result = pattern.search(cont.decode("utf8"))

其中,cont是待匹配字符串,kw_regexp是拼接来的正则表达式字符串,前面一定要加"r"。

 

python中正则表达式在中文字符串匹配时的坑

标签:匹配   中文字符串   文字   att   python   编码问题   arch   utf8   今天   

原文地址:https://www.cnblogs.com/zichun-zeng/p/10447114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!