(进阶)判断字符串中是否有汉字

方式一:Regular Expressions
a =u"汉字"
re.search(ur"[\u4e00-\u9fa5]+",a)


方式二:Function
def is_chinese(uchar):
if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
return True
else:
return False
出于性能考虑,第一种方法不是很可取,但是绝对能够精确比配,千万不要忘记‘ur’,少了它,字母也会被比配到,而第二种的一个小缺点是如果传入的uchar以字母或者数字开头,而且中间又空格,会直接返回False,所以,我们必须遍历这个字符串,设置一个boolean型的变量来表示是否为汉字,代码如下。

def is_chinese(uchar):
  if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
    return True
  else:
    return False
def main():
  li = u'global hawk 1.0l 手动功夫版'
  bool = False
  for i in li:
    if is_chinese(i):
      bool = True
      break
  if bool:
    print 'Chinese'
  else:
    print 'No Chinese'
if __name__ == "__main__":
  main()

当然了,为了测试二者的效率,我们可以导入timit模块,这个就以后再谈了。

你可能感兴趣的:(python)