今天在做分词的时候,由于既有汉字,又有其他的字符,但是能用到的只有汉字部分,所以就想说有没有什么办法能判断一个字符串是否是纯中文的,就在网上找了一下方法,找到了一篇比较详细的判断字符串类型的博文,
原文地址如下:https://blog.csdn.net/u012155582/article/details/78587394
原文如下:
1、判断一个字符串是不是中文,这里的关键是在判断的时候用字符串的Unicode码
def is_chinese(uchar):
"""判断一个unicode是否是汉字"""
if uchar >= u'\u4e00' and uchar <= u'\u9fa5':
return True
else:
return False
2、判断一个Unicode字符是否是数字
def is_number(uchar):
"""判断一个unicode是否是数字"""
if uchar >= u'\u0030' and uchar <= u'\u0039':
return True
else:
return False
3、判断一个Unicode字符是否是字母
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 format_str(content):
content = unicode(content,'utf-8')
content_str = ''
for i in content:
if is_chinese(i):
content_str = content_str+i
return content_str
4、 整体判断字符串是否全为数字或者字母
(1)str为字符串s为字符串,里面的字符包括小数点
str.isalnum() 所有字符都是数字或者字母
str.isalpha() 所有字符都是字母
str.isdigit() 所有字符都是数字,如果带小数点,则会返回False
str.isspace() 所有字符都是空白字符、t、n、r
5、检查字符串中是否包含数字
还用正则表达式进行判断,代码如下:
其中str是我们需要进行判断的字符串,语句的返回值是True或者False
bool(re.search(r'\d', str))