在Ruby 1.8.7中給定一個字符串(沒有使用\ p {}支持Unicode屬性的真棒Oniguruma正則表達式引擎),我希望能夠確定該字符串是否包含一個或多箇中文,日文或韓文字符;即如何在Ruby中檢測字符串中的某些Unicode字符?
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 blocks看到,但我想這是值得一問,如果有人在Ruby中的現有解決方案的認識。
你使用Ruby 1.9的版本,或者只是一箇舊版本不不錯的Unicode支持正則表達式?如果你使用1.9,你應該可以訪問(一些)Unicode屬性,比如'\ p {InCJKUnifiedIdeographs}'或甚至可以'\ p {Han}'。 – tchrist
1.8.7沒有Oniguruma;更新了問題。 –