"""判断一个unicode是否是英文字母"""
def is_alphabet(uchar):
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])
"""将UTF-8编码转换为Unicode编码"""
def convert_toUnicode(string):
ustring = string
if not isinstance(string, unicode):
ustring = string.decode('UTF-8')
return ustring
if __name__ == "__main__":
ustring1 = u'收割季节 麦浪和月光 洗着快镰刀'
string1 = 'Sky0天地Earth1*'
ustring1 = convert_toUnicode(ustring1)
string1 = convert_toUnicode(string1)
for item in string1:
# print is_chinese(item)
# print is_number(item)
# print is_alphabet(item)
print is_other(item)
# -*- coding: UTF-8 -*- """判断一个unicode是否是汉字"""def is_chinese(uchar): if uchar >= u'\u4e00' and uchar <= u'\u9fa5': return True else: return False """判断一个unicode是否是数字"""def is_number(uchar): if uchar >=...
基本定制型
复制代码 代码如下:C.__init__(self[, arg1, …]) 构造器(带一些可选的参数)C.__new__(self[, arg1, …]) 构造器(带一些可选的参数);通常用在设置不变数据类型的子类。C.__del__(self) 解构器C.__str__(self) 可打印的
字符
输出;内建str()及print 语句C.__repr__(self) 运行时的
字符
串输出;内建repr() 和‘‘ 操作符C.__
unicode
__(self)b
Unicode
字符
串输出;内建
unicode
()
C.__call__(self, *args) 表示可调用的实例C.__
从
字符
串的角度来说,中文不如
英文
整齐、规范,这是不可避免的现实。本文结合网上资料以及个人经验,以
python
语言
为例,稍作总结。欢迎补充或挑错。 一点经验 可以使用 repr()函数查看字串的原始格式。这对于写正则表达式有所帮助。
Python
的 re模块有两个相似的函数:re.match(), re.search 。两个函数的匹配过程完全一致,只是起点不同。match只从字串的开始位置进行匹配,如果失败,它就此放弃;而search则会锲而不舍地完全遍历整个字串中所有可能的位置,直到成功地找到一个匹配,或者搜索完字串,以失败告终。如果你了解match的特性(在某些情况下比较快),大可以自
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
Python
中的绝大部分数据结构可以最终分解成三种类型:集合(Set),序列(Sequence),映射(Mapping)。
1、集合是独立于标量,序列和映射之外的特殊数据结构,它支持数学理论的各种集合的运算。它的存在使得用程序代码实现数学理论变得方便。
2、序列是
Python
中最为基础的内建类型。它分为七种类型:列表、
字符
串、元组、
Unicode
字符
串、字节数组、缓冲区和xrange对象。常用的是:列表(List)、
字符
串(
String
)、元组(Tuple)。
3、映射在
Python
的
- 多值属性
- 可以遍历的
字符
串 1.
字符
串常被包含在tag内.Beautiful Soup用 Navigable
String
类来包装tag中的
字符
串
2.一个 Navigable
String
字符
串与
Python
中的
Unicode
字符
串相同,通过
unicode
() 方法可以直接将 Navigable
String
对象转换成
Unicode
字符
串
3.tag中包含的
字符
串不能编辑,但是可以被替换成其它的
字符
串,用 replace_with() 方法
- BeautifulSoup
- 注释及特殊
字符
串
- 遍历文档树
- 子节点
……………………………………
最后一个元素索引是-1,倒数第二个是-2,依次递减
2、序列(Sequence)的种类:
列表(list)、元组(tuple)、
字符
串(
string
)、
Unicode
字符
串、buffer对象、xrange对象
3、列表和元组的区别:列表可以进行修改,但是元组不行
4、tuple常作为字典的键
5、序列都可以进行以下操作:
索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)、以及检查元素是否属于序列(in)、最大值(max)、最小值(min)、长度(len)、迭代
下面这个小工具包含了
判断
unicode
是否是
汉字
、
数字
、
英文
或者其他
字符
,全角符号转半角符号,
unicode
字符
串归一化等工作。
!/usr/bin/env
Python
# -*- coding:GBK -*-
"""
汉字
处理的工具:
判断
unicode
是否是
汉字
,
数字
,
英文
,或者其他
字符
。
全角符号转半角符号。"""
__author__="internetsweep
一些
字符
串既包含中文、也包含
英文
、
数字
等,需要对这类
字符
串做提取,单个中文
字符
、
英文
单词以及
数字
表达等。需要采用正则匹配的方式来做
比如对于如下针对数据的描述
Android/IOS 2条装(0.25米+1米)土豪金
拆分后想要得到
"Android" "/" "IOS" "2" "条" "装" "(" "0.25" "米" "+" "1" "米" ")" "土" "豪" "金"
可以采用正则的方式匹配提取这些
字符
def str_split(str):
regex = r"[\u4e00-