zoukankan      html  css  js  c++  java
  • python中正则表达式在中文字符串匹配时的坑

      之前一直有使用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"。

  • 相关阅读:
    networkX用法整
    在人生路上对我影响最大的三位老师
    介绍自己
    介绍自己
    自我介绍
    打印沙漏1
    介绍自己
    对我影响最大的三位老师
    人生路上影响对我最大的三位老师
    1.自我介绍
  • 原文地址:https://www.cnblogs.com/zichun-zeng/p/10447114.html
Copyright © 2011-2022 走看看