python 判断unicode字符串是汉字/数字/字母,全角/半角转换
来源:互联网 发布:软件培训计划方案 编辑:程序博客网 时间:2024/05/16 07:55
文本处理经常会判断字符串是否是字母,数字或者汉字的问题,python str模块提供了些方法,但是不支持unicode,所以模仿str的相关方法,实现了unicode 字符串的汉字/数字/字母判断方法,以及全角半角转换。
#!/usr/bin/env python# -*- coding: UTF-8 -*-import sys#set default encoding as UTF-8reload(sys)sys.setdefaultencoding('utf-8')#judge a character is a Chinese Characterdef is_Chinese(uchar):if len(uchar) != 1:raise TypeError,'expected a character, but a string found!'if uchar >= u'\u4e00' and uchar <= u'\u9fa5':return Trueelse:return False#Judge a ustr is all Chinesedef is_all_Chinese(ustr): for uchar in ustr:if not is_Chinese(uchar):return Falsereturn True#Judge a char is a numberdef is_digit(uchar):if len(uchar) != 1:raise TypeError,'expected a character, but a string found!'if uchar >= u'\u0030' and uchar<=u'\u0039':return Trueelse:return False#Judge a str is all numdef is_all_digit(ustr):for uchar in ustr:if not is_digit(uchar):return Falsereturn True#Judge a char is a alphabetdef is_alpha(uchar):if len(uchar) != 1:raise TypeError,'expected a character, but a string found!'if (uchar >= u'\u0041' and uchar<=u'\u005a') or \ (uchar >= u'\u0061' and uchar<=u'\u007a'):return Trueelse:return False#Judge a str is all alphabetdef is_all_alpha(ustr):for uchar in ustr:if not is_alpha(uchar):return Falsereturn True #半角转全角def B2Q(uchar):if len(uchar) != 1:raise TypeError,'expected a character, but a string found!'inner_code = ord(uchar)if inner_code < 0x0020 or inner_code > 0x7e: #不是半角字符就返回原来的字符return ucharif inner_code == 0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0inner_code = 0x3000else:inner_code += 0xfee0return unichr(inner_code) #全角转半角def Q2B(uchar):if len(uchar) != 1:raise TypeError,'expected a character, but a string found!'inner_code = ord(uchar)if inner_code == 0x3000:inner_code = 0x0020else:inner_code -= 0xfee0if inner_code < 0x0020 or inner_code > 0x7e: #转完之后不是半角字符返回原来的字符return ucharreturn unichr(inner_code) #把字符串全角转半角def stringQ2B(ustring):return ''.join([Q2B(uchar) for uchar in ustring])#main functionif __name__ == '__main__':pass
- python 判断unicode字符串是汉字/数字/字母,全角/半角转换
- js全角转半角(经典代码,不转换汉字,只转换数字和字母)
- 汉字全角半角转换
- VC 判断CString字符串中各位是数字,大小写字母,符号,汉字。(UNICODE和ANSI)
- VC 判断CString字符串中各位是数字,大小写字母,符号,汉字。(UNICODE和ANSI)
- C# 判断字符串是全角或半角
- 把全角数字(及字母)转换成半角数字
- 正则表达式判断数字,字母的全角或半角
- 判断字符串是否有汉字、全角半角的判断
- python判断字符串是字母 数字 大小写
- 字符串全角半角转换
- python半角全角转换
- 把字符串中的汉字去掉,然后判断全角和半角
- JavaScript数字全角半角转换
- python 判断中英文、数字及全角半角等
- C# 【转贴】中判断字符串是全角还是半角
- C#中判断字符串是全角还是半角
- 如何判断C#字符串是全角还是半角
- FlashBuilder插件安装的3种方法
- 为ftp上传的文件指定权限
- javaweb jsp标签标准库JSTL 14个标签详解
- Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
- 项目总结-天气预报(电视)
- python 判断unicode字符串是汉字/数字/字母,全角/半角转换
- Bitmap Font Generator
- 使用Git、Git GUI和TortoiseGit
- 系统日志syslog
- 《Objective-C程序设计(第四版)》读书笔记(三)
- JQuery正则表达式
- javascript实现的可改变滚动方向的无缝滚动
- 用WinRAR解压7z.001格式的文件
- 文件夹,文件,读出名字