作者sweetwords (米虫三号)
看板Perl
标题Re: [问题] 中文比对
时间Fri Jun 6 02:21:47 2008
我将我整段程式贴出来,敢请各位前辈指教 ._.)>
#如果 array 存在就跑这一段
if(@insert_inspectorc)
{
#抓大小跑回圈
$number_contributor=@insert_inspectorc;
for(0..$number_contributor)
{
#判断教授头衔是否有指这个字 PS:已经修改过板友提示的部份
#但还是抓不到 XD"
if($insert_rolec[$_]=~/指/)
{
#移除指导教授名字中间空格的
$insert_inspectorc[$_]=~s/[ ]+//g;
#将教授名字存到 $advisor 变数
$advisor.=":".@insert_inspectorc[$_];
}
}
}
我後续有将 @insert_inspectorc 这个阵列列印出来,
一切正常,都可以看到指导教授这几个字,跟每位教授的名字
EX:
指导教授 张三 advisor three
委员 李四 committe four
而这段後面是跑英文比对的部份,
最後 advisor 要将
张三,three
这样串在一起
而 $advisor 确实都有抓到我要的 ,three 这一部份
可是不知道为啥就是
张三抓不进来
我後续串在一起是这样写的
$advisor.=",".@insert_inspector[$_];
应该也没有错,重点应该就是在为啥中文一直跑不过去
困惑 Q_Qa
※ 引述《sweetwords (米虫三号)》之铭言:
: 我是用 big5 模式下编写,然後再用支程式去转成 utf8 格式
: 这支程式主要是比对是否有相关字然後做後续的动作
: 可是当我下中文这个判断的时候
: if($insert_rolec =~/.指.*/) code
: print $insert_rolec;
: 我主要想法是,字串中出现「指」这个字就将这个字列印出来
: 可是怎麽跑都不会跑到下列去
: 我也有试过把这个变数,跟我想要的字拿来直接做比对
: 例如
: if($insert_rolec eq '指导教授')
: 可是一样不能 orz"
: 请问这大概是啥问题呢?
: 亦或是我比对那边写得不对或是有误 ._.?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.194.56
1F:推 david220:$insert_rolec => $insert_inspectorc 06/06 07:45
2F:→ david220:for(0..$number_contributor) => 06/06 07:46
3F:→ david220:for(0..$number_contributor - 1) 06/06 07:46
4F:→ sweetwords:role是存头衔 inspectorc 是存名字没错 ._. 06/06 09:11
5F:→ sweetwords:所以应该是用 role 去判断吧 '-' 06/06 09:12