Is there any way to detect Chinese characters using Perl? And is there any way on how to split Chinese characters with symbol dot '.' perfectly?
Asked
Active
Viewed 1,198 times
1 Answers
9
Depends on your particular notion of what is a Chinese character. Perhaps you're looking for /\p{Script=Hani}/
, but if we want to cast our net wide, the following regex pattern will match stuff that occurs in Chinese writing. Restrict if necessary.
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;
Yes, .
matches one character. The empty pattern for split DWYM:
use utf8;
split //, '冰淇淋'
# returns ('冰', '淇', '淋')

daxim
- 39,270
- 4
- 65
- 132
-
How about if 冰.淇. ,but I just want to split out the last dot not all dot in the whole words? – deepWebMie Aug 05 '11 at 03:17
-
1PerlDoc page on this technique: http://perldoc.perl.org/perluniprops.html#Properties-accessible-through-%5Cp%7B%7D-and-%5CP%7B%7D – jhclark Jun 29 '12 at 18:18