我有一个包含韩文和中文的文件。我想找一些使用括号语句表示韩语单词朝鲜语的对,比如:한문(漢文)
搜索应该是这样的:/[korean characters] \([chinese characters]\)/
如何指定中文或韩文字符,或任何其他集,例如西里尔文或泰文?
发布于 2012-01-24 08:24:25
Unicode提供标识脚本字符所属的属性。可以使用\p{Script=...}根据脚本属性匹配字符。
我对你提到的语言不是很了解,但我认为你需要
\p{Script=Han}又名用于Chinese.\p{Script=Hangul}的\p{Han}又名用于Korean.\p{Script=Cyrillic}的\p{Hangul}又名用于Cyrillic.\p{Script=Thai}的\p{Cyrl}又名用于泰国的\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和unichars可从Unicode::Tussle发行版获得。
https://stackoverflow.com/questions/8980366
复制相似问题