रुबी 1.8.7 में एक स्ट्रिंग को देखते हुए (अद्भुत ओनिगुरुमा नियमित अभिव्यक्ति इंजन के बिना जो यूनिकोड गुणों को \ p {} के साथ समर्थन करता है), मैं यह निर्धारित करने में सक्षम होना चाहूंगा कि स्ट्रिंग में एक या अधिक चीनी, जापानी या कोरियाई वर्ण; अर्थातरूबी में एक स्ट्रिंग में कुछ यूनिकोड वर्णों का पता कैसे लगा सकता हूं?
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 में हैं करने के लिए नीचे उबल पड़ेगी, लेकिन मुझे लगा कि यह किसी रूबी में एक मौजूदा समाधान के जानता है पूछ लायक था।
आप अच्छा यूनिकोड regex समर्थन के बिना रूबी के संस्करण 1.9, या सिर्फ एक पुराने संस्करण का उपयोग कर रहे हैं? यदि आप 1.9 का उपयोग कर रहे हैं, तो आपको (कुछ) यूनिकोड गुणों तक पहुंच प्राप्त करनी चाहिए, जैसे '\ p {InCJKUnifiedIdeographs} 'या शायद' \ p {Han} '। ओनिगुरुमा के बिना – tchrist
1.8.7; सवाल अद्यतन किया। –