首先看如下代码:
程序运行结果:
good
分析:由于“图”的右半边与“盟”的左半边合成了“济”字,故匹配成功。但在中文处理中这种情况是不合理的。
解决方案:引入 Encode 包。
现在的结果为:
bad
$s
=
"
图盟科技 mapabc
"
;
$t = " 济 " ;
if ($s =~/ $t / )
{
print "good ";
}
else
{
print "bad ";
}
$t = " 济 " ;
if ($s =~/ $t / )
{
print "good ";
}
else
{
print "bad ";
}
程序运行结果:
good
分析:由于“图”的右半边与“盟”的左半边合成了“济”字,故匹配成功。但在中文处理中这种情况是不合理的。
解决方案:引入 Encode 包。
use Encode;
$s = " 图盟科技 mapabc " ;
$t = " 济 " ;
$length=length($t);# 2
$s = Encode::decode('GB2312',$s);
$t = Encode::decode('GB2312' ,$t);
$length=length($t);#1
if ($s =~/ $t / )
{
print "good ";
}
else
{
print "bad ";
}
$s = " 图盟科技 mapabc " ;
$t = " 济 " ;
$length=length($t);# 2
$s = Encode::decode('GB2312',$s);
$t = Encode::decode('GB2312' ,$t);
$length=length($t);#1
if ($s =~/ $t / )
{
print "good ";
}
else
{
print "bad ";
}
现在的结果为:
bad