猿问

麻烦帮忙看看,在perl中如何提取包含相同的字符串?该怎么操作呢?

例如:
@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所以对比不了.
菜鸡,求大神指教。

桃花长相依
浏览 283回答 2
2回答

郎朗坤

按照你的要求编写的perl程序如下(先用正则表达式提取,再用正则表达式替换)@abc&nbsp;=&nbsp;("abc","def","ghi","gkl","mno","abc.qqq","def.qqq","ghi.qqq","gkl.qqq","mno.qqq");&nbsp;$size=@abc;&nbsp;@www=();&nbsp;for($i=0;$i<$size;$i++){&nbsp;&nbsp;$string=$abc[$i];&nbsp;&nbsp;if($string=~&nbsp;m/[A-Za-z]+\.qqq/){&nbsp;&nbsp;&nbsp;push(@www,$&);&nbsp;&nbsp;}&nbsp;}&nbsp;print&nbsp;"@www\n";&nbsp;&nbsp;$size=@www;&nbsp;for($i=0;$i<$size;$i++){&nbsp;&nbsp;$www[$i]=~&nbsp;s/\.qqq//i;&nbsp;}&nbsp;print&nbsp;"@www\n";

DIEA

@abc = ("abc","def","ghi","gkl","mno","abc.qqq","def.qqq","ghi.qqq","gkl.qqq","mno.qqq","123.qqq");@a = grep{s/(\w+)\.qqq$/$1/}@abc;print"@a\n";
随时随地看视频慕课网APP
我要回答