Biorąc ciąg w Ruby 1.8.7 (bez niesamowitego silnika wyrażeń regularnych Oniguruma, który obsługuje właściwości Unicode z \ p {}), chciałbym móc określić, czy ciąg zawiera co najmniej jeden chiński, japoński lub koreański postacie; tjJak wykryć niektóre znaki Unicode w łańcuchu w Ruby?
class String
def contains_cjk?
...
end
end
>> '日本語'.contains_cjk?
=> true
>> '광고 프로그램'.contains_cjk?
=> true
>> '艾弗森将退出篮坛'.contains_cjk?
=> true
>> 'Watashi ha bakana gaijin desu.'.contains_cjk?
=> false
Podejrzewam, że to będzie sprowadzają się do zobaczyć, czy każdy ze znaków w łańcuchu są w Unihan CJKV Unicode blocks, ale pomyślałem, że warto było pytać, czy ktoś wie istniejącego roztworu w Ruby.
używasz wersji 1.9 Ruby, czy tylko wersję bez dobrego wsparcia regex Unicode? Jeśli używasz 1.9, powinieneś mieć dostęp do (niektórych) właściwości Unicode, takich jak '\ p {InCJKUnifiedIdeographs}', a może nawet '\ p {Han}'. – tchrist
1.8.7 bez Oniguruma; zaktualizował pytanie. –