2024-10-03 11:22:27 发布
网友
我想定义一个函数,检查字符串是否包含在中文中。例如, 勾选“包含中文”(“incinch”),则返回True。check_contain_chinese('xx-cin'),返回True,check_contain_chinese(“xxx”),返回False。 有人能给我一些建议吗?我是新生。。在
这里所有现有的答案都将中日韩(代表汉语、日语和韩语)字符与韩语字符(仅代表中文)混淆。在
判断一个汉字是不是中日韩很容易,但很难判断一个汉字是否是汉字,而且标准在不断变化,新的汉字总是不断增加。在
但在实际操作中,人们通常使用u'\u4e00'-u'\u9fa5'来检查一个字符。超出此范围的中日韩字符通常无法用普通中文字体显示。在
有时CJK Radicals Supplement、Bopomofo、CJK Strokes也应视为字符,它们甚至不在中日韩统一汉字('\u4e00'-u'\u9fff')中,但它们在汉语书写系统中是常见而重要的。在
参考文献:
CJK characters
CJK Unified Ideographs
{a6}
GB 2312 to Unicode
GB 12345 to Unicode
检查unicode字符的范围,以确定字符串中的某个字符是否属于中文字符。谷歌搜索显示,所有的汉字都在'\u4e00'和{}之间。你可能想亲自验证一下。在
'\u4e00'
def check_contain_chinese(check_str): for ch in check_str.decode('utf-8'): if u'\u4e00' <= ch <= u'\u9fff': return True return False
汉字有six Unicode maps。只需检查字符串中任何字符的代码是否符合0x4E00-0x9FFF间隔:
>>> any(0x4E00 <= ord(x) <= 0x9FFF for x in u'xx中国') 1: True >>> any(0x4E00 <= ord(x) <= 0x9FFF for x in u'xxx') 2: False
这里所有现有的答案都将中日韩(代表汉语、日语和韩语)字符与韩语字符(仅代表中文)混淆。在
判断一个汉字是不是中日韩很容易,但很难判断一个汉字是否是汉字,而且标准在不断变化,新的汉字总是不断增加。在
但在实际操作中,人们通常使用u'\u4e00'-u'\u9fa5'来检查一个字符。超出此范围的中日韩字符通常无法用普通中文字体显示。在
有时CJK Radicals Supplement、Bopomofo、CJK Strokes也应视为字符,它们甚至不在中日韩统一汉字('\u4e00'-u'\u9fff')中,但它们在汉语书写系统中是常见而重要的。在
参考文献:
CJK characters
CJK Unified Ideographs
{a6}
GB 2312 to Unicode
GB 12345 to Unicode
检查unicode字符的范围,以确定字符串中的某个字符是否属于中文字符。谷歌搜索显示,所有的汉字都在}之间。你可能想亲自验证一下。在
'\u4e00'
和{汉字有six Unicode maps。只需检查字符串中任何字符的代码是否符合0x4E00-0x9FFF间隔:
相关问题 更多 >
编程相关推荐