由于业务需求,需要写一个小程序,来判断一个字符串中是不是纯中文字符 ( 一个字符串中不能包含符号,英文 )
比如
a = "你好"
这个就是一个纯中文
再比如
a = "</p>你好"
这个就不行~
那么需要如何优雅的来实现?
由于业务需求,需要写一个小程序,来判断一个字符串中是不是纯中文字符 ( 一个字符串中不能包含符号,英文 )
比如
a = "你好"
这个就是一个纯中文
再比如
a = "</p>你好"
这个就不行~
那么需要如何优雅的来实现?
>>> import regex
>>> zh = regex.compile(r'^\p{Han}*$')
>>> zh.match('你好')
<regex.Match object; span=(0, 2), match='你好'>
>>> zh.match('<p>好')
>>>
只能保证是汉字,不能保证是中文,也可能是日文。
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
在python3中,str默认是unicode编码
用 ord() 函数判断单个字符的unicode编码是否大于
255
即可。一般来说,中文常用字的范围是:
[\u4e00-\u9fa5]
准确点判断中文字符,可以这样比较:
例子:
既然 @依云 提出了编码范围的问题,就再补充一些~
详细的unicode分区信息可以参考这里:中日韩统一表意文字
楼主是问 判断中文的
算法
;很简单,就是比较字符编码的大小,落在cjk
文字范围内,就是中文。出了
[\u4e00-\u9fa5]
范围的汉字,多数是生僻字、异体字;如果很在意的话,可以参照下表,多加几个判断条件即可。中文在unicode里的分区码段: