Cho một chuỗi trong Ruby 1.8.7 (không có công cụ biểu thức chính quy Oniguruma tuyệt vời hỗ trợ các thuộc tính Unicode với \ p {}), tôi muốn có thể xác định xem chuỗi có chứa một hoặc nhiều tiếng Trung, tiếng Nhật hay tiếng Hàn nhân vật; ví dụ:Làm thế nào tôi có thể phát hiện các ký tự Unicode nhất định trong một chuỗi trong 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
tôi nghi ngờ rằng điều này sẽ đun sôi xuống để xem nếu bất kỳ của các nhân vật trong chuỗi đang trong Unihan CJKV Unicode blocks, nhưng tôi nghĩ đó là giá trị yêu cầu nếu có ai biết của một giải pháp hiện có trong Ruby.
Bạn đang sử dụng phiên bản 1.9 của Ruby, hay chỉ là một phiên bản cũ mà không Unicode hỗ trợ regex tốt? Nếu bạn đang sử dụng 1.9, bạn sẽ có quyền truy cập vào một số thuộc tính Unicode, như '\ p {InCJKUnifiedIdeographs}' hoặc thậm chí là '\ p {Han}'. – tchrist
1.8.7 không có Oniguruma; đã cập nhật câu hỏi. –