perl 怎样判断字符是否中文

正则表达式:

\p{Script=Han}
\p{Han}
\p{Hani}

3个一样

那么\p{Han}里又是啥呢?

需安装Unicode::Tussle这个模块,使用unichars命令来查看

unichars -ua '\p{Han}'

例子:

#!/usr/bin/perl -w
use strict;
use utf8; # 举例子的用意,这个不可少,匹配字符串utf8 flag需要是on

my $s1 = "人";
print "$s1 match Han\n" if ( $s1 =~ /\p{Han}/ );

my $s2 = "a";
print "$s2 can't match Han\n" if ( $s2 !~ /\p{Han}/ );

这篇文章: 有用 无用