使用perl检测汉字?

时间:2011-08-04 06:31:17

标签: perl split detect cjk

有没有办法用Perl检测中文字符?有没有什么方法可以用符号点''来分割汉字。完美?

1 个答案:

答案 0 :(得分:7)

取决于你对什么是汉字的特殊概念。也许你正在寻找/\p{Script=Hani}/,但是如果我们想要扩展我的网络,那么下面的正则表达式模式将匹配中文写作中出现的内容。必要时限制。

use 5.014;
/
    (?: \p{Block=CJK_Compatibility}
    |   \p{Block=CJK_Compatibility_Forms}
    |   \p{Block=CJK_Compatibility_Ideographs}
    |   \p{Block=CJK_Compatibility_Ideographs_Supplement}
    |   \p{Block=CJK_Radicals_Supplement}
    |   \p{Block=CJK_Strokes}
    |   \p{Block=CJK_Symbols_And_Punctuation}
    |   \p{Block=CJK_Unified_Ideographs}
    |   \p{Block=CJK_Unified_Ideographs_Extension_A}
    |   \p{Block=CJK_Unified_Ideographs_Extension_B}
    |   \p{Block=CJK_Unified_Ideographs_Extension_C}
    )
/x;

是的,.匹配一个字符。 split DWYM的空模式:

use utf8;
split //, '冰淇淋'
# returns ('冰', '淇', '淋')
相关问题