2012-01-24 15 views
6

韓国語と中国語のファイルがあります。どのように私は中国を指定しない/[korean characters] \([chinese characters]\)/Perlの正規表現が任意のセットから文字を見つける

か:検索は次のようになります(漢文)

한문:私はこのような括弧の文は、韓国語のための漢字を与えるために使用されているペアを見つけたいです韓国語の文字、またはキリル文字やタイ語などの他の文字列を使用していますか?

答えて

9

Unicodeには、のスクリプト文字が属する属性を指定します。文字は、\p{Script=...}を使用してスクリプトプロパティに基づいて一致させることができます。

私はあなたが言及した言語についてあまり知らないが、私はあなたが中国のために\p{Han}別名

  • \p{Script=Han}をしたいと思います。
  • \p{Script=Hangul}韓国語用\p{Hangul}
  • \p{Script=Cyrillic} aka \p{Cyrl}(キリル文字)
  • \p{Script=Thai} aka \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 
... 

* — unipropsunicharsUnicode::Tussleディストリビューションから入手できます。

関連する問題