zoukankan      html  css  js  c++  java
  • python正则的中文处理(转)

    匹配中文时,正则表达式规则和目标字串的编码格式必须相同

        print sys.getdefaultencoding()
        text =u"#who#helloworld#a中文x#"
        print isinstance(text,unicode)
        print text

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 18: ordinal not in range(128)

    print text报错
    解释:控制台信息输出窗口是按照ascii编码输出的(英文系统的默认编码是ascii),而上面代码中的字符串是Unicode编码的,所以输出时产生了错误。
    改成 print(word.encode(''))即可

    //确定系统默认编码
    import sys
    print sys.getdefaultencoding()
    //'ascii'

    //判断字符类型是否unicode
    print isinstance(text,)
    //True

    unicodepython字符互转

    __author__ = 'medcl'
    # -*- coding: utf-8 -*-
    unistr= u'a';
    pystr=unistr.encode('utf8')
    unistr2=unicode(pystr,'utf8')
    #需要unicode的环境
    if not isinstance(input,unicode):
        temp=unicode(input,'utf8')
    else:
        temp=input
    
    #需要pythonstr的环境
    if isinstance(input,unicode):
        temp2=input.encode('utf8')
    else:
        temp2=input
    

    正则获取No-ascii

    内容:
    "#who#helloworld#a中文x#"

    正则:
    r"[x80-xff]+"

    输出:
    中文

    __author__ = 'medcl'
    # -*- coding: utf-8 -*-
    import re
    def findPart(regex, text, name):
        res=re.findall(regex, text)
        if res:
            print "There are %d %s parts:
    "% (len(res), name)
            for r in res:
                print "	",r.encode("utf8")
            print
     
    text ="#who#helloworld#a中文x#"
    usample=unicode(text,'utf8')
    findPart(u"#[wu2E80-u9FFF]+#", usample, "unicode chinese")

    输出

    	#who#
    	#a中文x#

    几个主要非英文语系字符范围

    2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。
    3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。
    4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。
    A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。
    AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。
    F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。
    FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。
    

    REF:http://www.blogjava.net/Skynet/archive/2009/05/02/268628.html

    http://iregex.org/blog/-chinese-unicode-regular-expressions.html

    本文来自: python正则的中文处理

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/mmix2009/p/3220458.html
Copyright © 2011-2022 走看看