在Ruby 1.8.7中(没有支持\p{}的Unicode属性的强大Oniguruma正则表达式引擎),如果给定一个字符串,我想要确定该字符串是否包含一个或多个中文、日文或韩文字符;即
class String
def contains_cjk?
...
end
end
>> '日本語'.contains_cjk?
=> true
>> '광고 프로그램'.contains_cjk?
=> true
>> '艾弗森将退出篮坛'.contains_cjk?
=> true
>> 'Watashi ha bakana gaijin desu.'.contains_cjk?
=> false
我猜测这将归结为查看字符串中的任何字符是否在Unihan CJKV Unicode块中,但我觉得值得问一下是否有现成的Ruby解决方案。
\p{InCJKUnifiedIdeographs}
或者甚至是\p{Han}
。 - tchrist