首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl正则表达式从任意集中查找字符

Perl正则表达式从任意集中查找字符
EN

Stack Overflow用户
提问于 2012-01-24 08:00:50
回答 1查看 1.2K关注 0票数 6

我有一个包含韩文和中文的文件。我想找一些使用括号语句表示韩语单词朝鲜语的对,比如:한문(漢文)

搜索应该是这样的:/[korean characters] \([chinese characters]\)/

如何指定中文或韩文字符,或任何其他集,例如西里尔文或泰文?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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*来查找与特定字符匹配的属性。

代码语言:javascript
复制
$ 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字符都没有命名。)

代码语言:javascript
复制
$ 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
...

*- unipropsunichars可从Unicode::Tussle发行版获得。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8980366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档