为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

桃花长相依 2021-10-13 21:11:04
例如:@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 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

按照你的要求编写的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";


查看完整回答
反对 回复 2021-10-18
?
DIEA

TA贡献1820条经验 获得超2个赞

@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";




查看完整回答
反对 回复 2021-10-18
  • 2 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信