求救 关于perl中文处理

求救 关于perl中文处理

求救 关于perl中文处理
小弟遇到一难题,请各位指教:
有一中文数组,要判断数组中有多少了已知字符串?
如:@array="您好 您好 您 您好 您";
判断其中有多少个$string($string="您")
在线等!
补充:

要在一字符数组中是否有一项为$string(变量),用正则表达式如何表达?
该变量可能为标点符号(.?)
谢了
你以前是写C的吧?呵呵,P.
你以前是写C的吧?呵呵,Perl 中的字符串直接可以用标量来表示,不用像C中那样用字符数组来表示
所以你的 @array="您好 您好 您 您好 您"; 实际上 "您好 您好 您 您好 您" 只是数组 @array 中的第一个元素而已
你的问题用正则表达式即可,如下:[quote]$pattern='您';
$string="您好 您好 您 您好 您";
$matchs=($string=~ s/(\Q$pattern\E)/\1/g);
print $matchs;
[/quote]




   

谢谢
呵呵 是的 我刚学perl 很多陋习改不过来
你的结果好象不对啊
应该要得到结果为2
还请教一下:--$string=".
还请教一下:
$string="null ({ 3 4 }) ? ({ 6 7 })????????????";
判断其中是否含有$string1($string1可能为null,也可能为?等标点符号)

急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
哦~你要完全匹配,可以按照.
哦~你要完全匹配,可以按照你先前的数组的方法来处理,如下:
[quote]$pattern='您';
$string="您好 您好 您 您好 您";
@matchs=split(/\s/,$string);
$i=0;
for(@matchs){
$i++ if /^$pattern$/;
}
print $i;[/quote]
方法多种多样,这只是其中一种
谢了 还请教一下
还请教一下:
$string="null ({ 3 4 }) ? ({ 6 7 })????????????";
判断其中是否含有$string1($string1可能为null,也可能为?等标点符号)

急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!