perl中正则匹配中文字符

 

写下这个题目,首先要区分的是,不是在perl的正则中找到中文,那样只要根据字符集的范围就可以找到,而是要找到给定中文字符串中是否包括指定的字词,比如,当下的某个系统中需要过滤 不厚先生的 名字。

通常,在脚本型语言如,PHP或者编译型语言如,Java中,要匹配某个字符串中是否有中文,如 张老三,大致写成这样:

/.*张老三.*/

字符集的设定,应该跟程序的代码环境保持一致即可。

在Perl中却是行不通,在网上找了一圈,未果,实验测试出的解决办法如下:

use Encode;

my $targetStr = ‘张老三’;

$targetStr = decode(“utf8”, $targetStr);

if($haystack =~ /.*$targetStr.*/g){

#—-

}

即可。

此条目发表在计算机技术分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code