使用ruby检测句子中的cjk字符!

时间:2010-10-20 20:03:11

标签: ruby regex

$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";

如何检测此字符串中是否有中文字符,但我不知道该怎么做。有什么线索吗?

1 个答案:

答案 0 :(得分:1)

正则表达式不是这里的方法。您应该使用类似于以下的代码(免责声明:我不是Ruby程序员):

# coding: utf-8
str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";

str.each_char { |c|
  if c.ord >= 0x4E00 && c.ord <= 0x9FFF
    # found a chinese character - process it somehow.
    puts c
  end   
}

您正在检查字符是否在Unicode中的常见中文字符范围内。这不是 hanzi (中文字符)的完整范围。如果您需要检测罕见或历史字符,则只需将here列出的范围添加到布尔检查中。