• 技术文章 >后端开发 >Python教程

    Python正则表达式匹配中文用法示例

    高洛峰高洛峰2017-02-21 10:35:22原创683
    本文实例讲述了Python正则表达式匹配中文用法。分享给大家供大家参考,具体如下:

    #!/usr/bin/python
    #-*- coding:cp936-*-#思路,将str转换成unicode,方可用正则表达式,前提是,要知道文件的编码,本例中是gbk
    import cPickle as mypickle
    import re
    import sys
    if (__name__=='__main__'):
      fid1=file('demo.txt','r');#demo.txt写入字符如:脚本之家
      p=re.compile('(^\s+|\s+$)');
      phanzigbk=re.compile('[\\x20-\\x7f]');
      phanzi=re.compile(u'[\u4e00-\u9fa5]');#这里要加u,注意
      commlines=fid1.readlines();
      fid1.close();
      dictfamilyname={};
      dictfirstname={};
      for line in commlines:
        line=p.sub('',line);
        print type(line);
        print line;
        uline=unicode(line,'gbk');
        print type(uline);
        candidates=phanzi.findall(uline);
        print len(candidates);
        if(len(candidates)==2):
          print candidates[0];
          familynamegbk=candidates[0].encode('gbk');#把unicode型的变量变成str型的变量
          firstnamegbk=candidates[1].encode('gbk');
          if(dictfamilyname.has_key(familynamegbk)):
            dictfamilyname[familynamegbk]=dictfamilyname[familynamegbk]+1;
          else:
            dictfamilyname[familynamegbk]=1;
          if(dictfirstname.has_key(firstnamegbk)):
            dictfirstname[firstnamegbk]=dictfirstname[firstnamegbk]+1;
          else:
            dictfirstname[firstnamegbk]=1;
      familynameitems=dictfamilyname.items();
      print familynameitems;
      firstnameitems=dictfirstname.items();
      familynameitems.sort(key=lambda d:d[1],reverse=True);
      firstnameitems.sort(key=lambda d :d[1],reverse=True);
      fid=file('familyname.txt','w');
      for m in familynameitems:
        s=m[0]+'\t'+str(m[1]);
        fid.write(s);
        fid.write('\n');
      fid.close();
      fid=file('firstname.txt','w');
      for m in firstnameitems:
        s=m[0]+'\t'+str(m[1]);
        fid.write(s);
        fid.write('\n');
      fid.close();
      print 'finish'

    运行效果图如下:

    Python正则表达式匹配中文用法示例

    更多Python正则表达式匹配中文用法示例相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 正则 中文
    上一篇:Python获取某一天是星期几的方法示例 下一篇:python下如何查询CS反恐精英的服务器信息
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• Python轻量级搜索工具Whoosh的使用(总结分享)• python正则表达式如何实现重叠匹配• 总结分享Python冷门的技巧• python虚拟环境配置与管理• 完全掌握Python中的双下方法
    1/1

    PHP中文网