您当前的位置: 首页 >  Python

浪荡子爱自由

暂无认证

  • 8浏览

    0关注

    74博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Python】处理中文文本最全python源代码

浪荡子爱自由 发布时间:2022-05-06 10:38:52 ,浏览量:8

中文文本处理的工具:

        判断unicode是否是汉字,数字,英文,或者其他字符。全角符号转半角符号。

def is_chinese(uchar):
    """判断一个unicode是否是汉字"""
    if uchar >= u'\u4e00' and uchar= u'\u0030' and uchar= u'\u0061' and uchar= u'\u0041' and uchar 0 and number > 0:
        return True
    else:
        return False

def is_other(uchar, but = u''):
    """判断是否非汉字、数字和英文字符"""
    if not (is_chinese(uchar) or is_number(uchar, but) or is_alphabet(uchar, but)):
        return True
    else:
        return False
 
def is_other_all(ustring, but = u''):
    """判断是否非汉字、数字和英文字符串"""
    for uchar in ustring:
        if not is_other(uchar, but):
            return False
    return True

def exist_chinese(ustring):
    for uchar in ustring:
        if is_chinese(uchar):
            return True
    return False

def exist_number(ustring):
    for uchar in ustring:
        if is_number(uchar):
            return True
    return False

def exist_alphabet(ustring):
    for uchar in ustring:
        if is_alphabet(uchar):
            return True
    return False

def exist_other(ustring, but = u''):
    for uchar in ustring:
        if is_other(uchar, but):
            return True
    return False

def B2Q(uchar):
    """半角转全角"""
    inside_code=ord(uchar)
    if inside_code0x7e:      #不是半角字符就返回原来的字符
        return uchar
    if inside_code==0x0020:       #除了空格其他的全角半角的公式为:半角=全角-0xfee0
        inside_code=0x3000
    else:
        inside_code+=0xfee0
    return unichr(inside_code)

def Q2B(uchar):
    """全角转半角"""
    if uchar == u'’':
		return u'\''
    inside_code=ord(uchar)
    if inside_code==0x3000:
        inside_code=0x0020
    else:
        inside_code-=0xfee0
    if inside_code0x7e:      #转完之后不是半角字符返回原来的字符
        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
关注
打赏
1647272175
查看更多评论
立即登录/注册

微信扫码登录

0.0337s