2012-01-24 16 views
6

से चरित्र ढूंढता है मेरे पास कोरियाई और चीनी वर्णों वाली एक फ़ाइल है। मैं जोड़े जहां निक्षिप्त बयान एक कोरियाई शब्द के लिए हंजा देने के लिए उपयोग किया जाता है, इस तरह लगाना चाहते हैं: 한문 (漢文)पर्ल रेगेक्स मनमाने ढंग से सेट

खोज कुछ इस तरह दिखेगा: /[korean characters] \([chinese characters]\)/

मैं कैसे चीनी निर्दिष्ट करूँ या कोरियाई पात्र, या उदाहरण के लिए सिरिलिक या थाई जैसे किसी अन्य सेट?

उत्तर

9

यूनिकोड गुण प्रदान करता है जो स्क्रिप्ट वर्णों की पहचान करता है। \p{Script=...} का उपयोग करके अक्षरों को उनकी स्क्रिप्ट प्रॉपर्टी के आधार पर मिलान किया जा सकता है।

मैं भाषाओं आप का उल्लेख के बारे में ज्यादा पता नहीं है, लेकिन मुझे लगता है कि आप चाहते हैं

  • \p{Script=Han} चीनी के लिए \p{Han} उर्फ। कोरियाई के लिए
  • \p{Script=Hangul} उर्फ ​​\p{Hangul}
  • \p{Script=Cyrillic} उर्फ ​​\p{Cyrl} सिरिलिक के लिए।
  • \p{Script=Thai} थाई के लिए \p{Thai} उर्फ।

आप perluniprops पर एक नज़र डालें एक आप देख रहे हैं खोजने के लिए कर सकता है, या आप uniprops * इस्तेमाल कर सकते हैं जो गुण एक विशिष्ट चरित्र से मेल खाते हैं खोजने के लिए।

$ uniprops D55C 
U+D55C ‹한› \N{HANGUL SYLLABLE HAN} 
    \w \pL \p{L_} \p{Lo} 
    All Any Alnum Alpha Alphabetic Assigned InHangulSyllables L Lo 
    Gr_Base Grapheme_Base Graph GrBase Hang Hangul Hangul_Syllables 
    ID_Continue IDC ID_Start IDS Letter L_ Other_Letter Print Word 
    XID_Continue XIDC XID_Start XIDS X_POSIX_Alnum X_POSIX_Alpha 
    X_POSIX_Graph X_POSIX_Print X_POSIX_Word 

* पता लगाने के लिए पात्रों को दिए गए संपत्ति में हैं, तो आप unichars उपयोग कर सकते हैं। (इस सीमित उपयोगिता के बाद से सबसे CJK वर्ण का नाम नहीं कर रहे हैं।)

$ unichars -au '\p{Han}' 
⺀ U+2E80 CJK RADICAL REPEAT 
⺁ U+2E81 CJK RADICAL CLIFF 
⺂ U+2E82 CJK RADICAL SECOND ONE 
⺃ U+2E83 CJK RADICAL SECOND TWO 
⺄ U+2E84 CJK RADICAL SECOND THREE 
... 

$ unichars -au '\p{Hangul}' 
ᄀ U+01100 HANGUL CHOSEONG KIYEOK 
ᄁ U+01101 HANGUL CHOSEONG SSANGKIYEOK 
ᄂ U+01102 HANGUL CHOSEONG NIEUN 
ᄃ U+01103 HANGUL CHOSEONG TIKEUT 
ᄄ U+01104 HANGUL CHOSEONG SSANGTIKEUT 
... 

* — uniprops और unicharsUnicode::Tussle distro से उपलब्ध हैं।

संबंधित मुद्दे