gpt4 book ai didi

regex - Perl正则表达式从任意集合中查找字符

转载 作者:行者123 更新时间:2023-12-02 21:15:22 27 4
gpt4 key购买 nike

我有一个包含韩文和中文字符的文件。我想找到使用括号语句来给出韩语单词汉字的对,如下所示:한문 (汉文)

搜索看起来像这样:/[韩文字符]\([中文字符]\)/

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

最佳答案

Unicode 提供了识别脚本字符所属的属性。可以使用 \p{Script=...} 根据字符的脚本属性来匹配字符。

我对你提到的语言不太了解,但我想你想要

  • \p{Script=Han} 又名 \p{Han} 表示中文。
  • \p{Script=Hangul} 又名 \p{Hangul} 韩语。
  • \p{Script=西里尔文} 又名 \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
...

* — unipropsunichars 可从 Unicode::Tussle 获取。发行版。

关于regex - Perl正则表达式从任意集合中查找字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com