zoukankan      html  css  js  c++  java
  • python判断unicode是否是汉字,数字,英文,或者其他字符

    python判断unicode是否是汉字,数字,英文,或者其他字符_新疆土人_百度空间

    python判断unicode是否是汉字,数字,英文,或者其他字符

    python判断unicode是否是汉字,数字,英文,或者其他字符_1878_百度空间

    python判断unicode是否是汉字,数字,英文,或者其他字符

    """汉字处理的工具:

    判断unicode是否是汉字,数字,英文,或者其他字符。

    全角符号转半角符号。"""

    __author__="internetsweeper <zhengbin0713@gmail.com>"

    __date__="2007-08-04"

    def is_chinese(uchar):

            """判断一个unicode是否是汉字"""

            if uchar >= u'\u4e00' and uchar<=u'\u9fa5':

                    return True

            else:

                    return False

    def is_number(uchar):

            """判断一个unicode是否是数字"""

            if uchar >= u'\u0030' and uchar<=u'\u0039':

                    return True

            else:

                    return False

    def is_alphabet(uchar):

            """判断一个unicode是否是英文字母"""

            if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):

                    return True

            else:

                    return False

    def is_other(uchar):

            """判断是否非汉字,数字和英文字符"""

            if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):

                    return True

            else:

                    return False

    def B2Q(uchar):

            """半角转全角"""

            inside_code=ord(uchar)

            if inside_code<0x0020 or inside_code>0x7e:      #不是半角字符就返回原来的字符

                    return uchar

            if inside_code==0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0

                    inside_code=0x3000

            else:

                    inside_code+=0xfee0

            return unichr(inside_code)

    def Q2B(uchar):

            """全角转半角"""

            inside_code=ord(uchar)

            if inside_code==0x3000:

                    inside_code=0x0020

            else:

                    inside_code-=0xfee0

            if inside_code<0x0020 or inside_code>0x7e:      #转完之后不是半角字符返回原来的字符

                    return uchar

            return unichr(inside_code)

    def stringQ2B(ustring):

            """把字符串全角转半角"""

            return "".join([Q2B(uchar) for uchar in ustring])

    def uniform(ustring):

            """格式化字符串,完成全角转半角,大写转小写的工作"""

            return stringQ2B(ustring).lower()

    def string2List(ustring):

            """将ustring按照中文,字母,数字分开"""

            retList=[]

            utmp=[]

            for uchar in ustring:

                    if is_other(uchar):

                            if len(utmp)==0:

                                    continue

                            else:

                                    retList.append("".join(utmp))

                                    utmp=[]

                    else:

                            utmp.append(uchar)

            if len(utmp)!=0:

                    retList.append("".join(utmp))

            return retList

    if __name__=="__main__":

            #test Q2B and B2Q

            for i in range(0x0020,0x007F):

                    print Q2B(B2Q(unichr(i))),B2Q(unichr(i))

            #test uniform

            ustring=u'中国 人名a高频A'

            ustring=uniform(ustring)

            ret=string2List(ustring)

            print ret

    def is_chinese(uchar):
        """判断一个unicode是否是汉字"""
        if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
            return True
        else:
            return False
       
    def is_number(uchar):
        """判断一个unicode是否是数字"""
        if uchar >= u'\u0030' and uchar<=u'\u0039':
            return True
        else:
            return False
       
    def is_alphabet(uchar):
        """判断一个unicode是否是英文字母"""
        if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
            return True
        else:
            return False

    def is_other(uchar):
        """判断是否非汉字,数字和英文字符"""
        if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
            return True
        else:
           return False

  • 相关阅读:
    [转]在自己的项目中调用别人的库的方法(static lib库,dynamic lib库以及dll动态库)
    前端、后台、客户端以及服务器
    C# 使用j
    C# Linq技术中SelectMany() 获取list对象的属性 汇总成为一个新的集合
    C# 集合的扩展方法-查询表达式GroupBy()的使用 转
    C# ASP.NET MVC中Filter过滤器的使用 通过注册到Global.asax注册为全局 过滤所有action
    C# ASP.NET MVC中有四种Filter 过滤器类型 通过标签 Attribute加到action上面
    C# 《Asp.Net Web Api 》-----路由机制 转
    C# ASP.NET MVC5路由系统机制详细讲解(转)
    MVC 自定义数据校验规则 Validation
  • 原文地址:https://www.cnblogs.com/lexus/p/2759968.html
Copyright © 2011-2022 走看看