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

By | 12月14日
Advertisement

方式一: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模块,这个就以后再谈了。

Similar Posts:

  • C#中判断字符串中是否有汉字及将汉字转化为字母缩写

    //用正则表达式判断字符是不是汉字 public static bool checkStringChineseReg(string text) { bool res = false; if (Regex.IsMatch(text, @"[u4e00-u9fbb]+$")) { res = true; } return res; } //将带有汉字的字符串转化为相应的首字母字符串 public static string getSpells(string input) { int len

  • 【转载】Java判断字符串中是否包含汉字

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class IfHanZi { public static void main(String[] args) { //方法一: String s1 = "我是中国人"; String s2 = "imchinese"; String s3 = "im中国人"; System.out.println(s1 +

  • oracle判断字符串中的汉字 oracle判断汉字 oracle 判断汉字

    oracle判断字符串中的汉字 oracle判断汉字 oracle 判断汉字 LENGTH(id) != LENGTHB(id) --判断汉字 判断字符串中是否含有中文 含有汉字 select * from weather w where LENGTH(substr(id, 1, instr(id, '℃', 1) - 1)) != LENGTHB(substr(id, 1, instr(id, '℃', 1) - 1))

  • 判断字符串中是否仅包含字母数字和汉字

    判断字符串中是否仅包含字母数字和汉字       *各种字符的unicode编码的范围:      * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])      * 数字:[0x30,0x39](或十进制[48, 57])      *小写字母:[0x61,0x7a](或十进制[97, 122]) * 大写字母:[0x41,0x5a](或十进制[65, 90]) public static boolean isLetterDigitOrChinese(String s

  • PHP判断字符串中是否包含指定字符串,支持中文哦

    RT,随手写的 1 /** 2 * 判断字符串中是否包含指定字符串 3 * @var source 源字符串 4 * @var target 要判断的是否包含的字符串 5 * @return bool 6 */ 7 function hasstring($source,$target){ 8 preg_match_all("/$target/sim", $source, $strResult, PREG_PATTERN_ORDER); 9 return !empty($strResul

  • 面试题9:判断字符串中的字符是否唯一

    题目描述: 实现一个算法来实现判断字符串中的字符是否唯一(即没有重复字符).注意,不能适用额外的数据结构,只能适用基本数据结构. 解题思路: 首先,问询面试官,构成字符串的字符集有多大?是ASCII字符,还是只是26个字母?还是有更大的字符集,对于不同的情况,我们可能会有不同的解决方案. bool isUnique1(string s) { bool a[256]; memset(a,0,sizeof(a)); int len = s.length(); for(int i=0; i<len;

  • js判断字符串中是否存在某些字符的方法

    js判断字符串中是否存在某些字符的方法 var patt = new RegExp('Adam');//要查找的字符串为'Adam' var str = 'My name is Adam Li.'; if(patt.test(str)){//字符串存在返回true否则返回false document.write('字符串中有Adam'); }else{ document.write('字符串中没有Adam'); }

  • 判断字符串中是否含有emoji表情,并将emoji表情替换成其他字符串

    判断字符串中是否含有emoji表情 -(BOOL)stringContainsEmoji:(NSString *)string { __block BOOL returnValue = NO; [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock: ^(NSString *substr

  • C#判断字符串中是否有中文

    //判断字符串中是否有中文,true有,false没有.public bool IsChina(string CString) { bool BoolValue = false; for (int i = 0; i < CString.Length; i++) { if (Convert.ToInt32(Convert.ToChar(CString.Substring(i, 1))) > Convert.ToInt32(Convert.ToChar(128))) { BoolValue = t

  • java判断字符串中是否包含字母

    1.java代码判断字符串中是否包含字母: 思路:使用正则表达式的来验证 1.1示例代码如下: /** * 该方法主要使用正则表达式来判断字符串中是否包含字母 * @author fenggaopan 2015年7月21日 上午9:49:40 * @param cardNum 待检验的原始卡号 * @return 返回是否包含 */ public boolean judgeContainsStr(String cardNum) { String regex=".*[a-zA-Z]+.*"

Tags: