perl中如何提取包含相同的字符串
例如:@abc=(abc,def,ghi,gkl,mno,abc.qqq,def.qqq,ghi.qqq,gkl.qqq,mno.qqq)我现在想把@abc中所有包含.q...
例如:
@abc = (abc,def,ghi,gkl,mno,abc.qqq,def.qqq,ghi.qqq,gkl.qqq,mno.qqq)
我现在想把@abc中所有包含.qqq的提取出来,并给到另一个变量。
即得到:
@www=(abc.qqq,def.qqq,ghi.qqq,gkl.qqq,mno.qqq)
第二种:或者能不能将所有带.qqq的字符串,去掉.qqq然后给到另一个变量。
因为我想比对所有.qqq前面相同的字母。但现在有.qqq所以对比不了.
菜鸡,求大神指教。 展开
@abc = (abc,def,ghi,gkl,mno,abc.qqq,def.qqq,ghi.qqq,gkl.qqq,mno.qqq)
我现在想把@abc中所有包含.qqq的提取出来,并给到另一个变量。
即得到:
@www=(abc.qqq,def.qqq,ghi.qqq,gkl.qqq,mno.qqq)
第二种:或者能不能将所有带.qqq的字符串,去掉.qqq然后给到另一个变量。
因为我想比对所有.qqq前面相同的字母。但现在有.qqq所以对比不了.
菜鸡,求大神指教。 展开
2个回答
展开全部
按照你的要求编写的perl程序如下(先用正则表达式提取,再用正则表达式替换)
@abc = ("abc","def","ghi","gkl","mno","abc.qqq","def.qqq","ghi.qqq","gkl.qqq","mno.qqq");
$size=@abc
;
@www=();
for($i=0;$i<$size;$i++){
$string=$abc[$i];
if($string=~ m/[A-Za-z]+\.qqq/){
push(@www,$&);
}
}
print "@www\n";
$size=@www
;
for($i=0;$i<$size;$i++){
$www[$i]=~ s/\.qqq//i;
}
print "@www\n";
追问
是的,非常感谢你提供的方案,但现在运行的还是在¥WWW里面,我如何将".qqq"的数组,和没有".qqq"的数组分成两个变量去呢。
追答
将去掉".qqq"的放到另一个数组中就行了,完整的代码如下
@abc = ("abc","def","ghi","gkl","mno","abc.qqq","def.qqq","ghi.qqq","gkl.qqq","mno.qqq");
$size=@abc
;
@www=();
for($i=0;$i<$size;$i++){
$string=$abc[$i];
if($string=~ m/[A-Za-z]+\.qqq/){
push(@www,$&);
}
}
print "@www\n";
$size=@www
;
@shuzu=();
for($i=0;$i<$size;$i++){
$string=$www[$i];
$string=~ s/\.qqq//i;
push(@shuzu,$string);
}
print "@shuzu\n";
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询