删除数组中的值

时间:2015-08-06 21:34:15

标签: arrays perl

这是我们的阵列:

my @array = ('?C=N;O=D',
'?C=M;O=A',
'?C=S;O=A',
'?C=D;O=A',
'/lab/blog/wp-content/',
'1-list.txt',
'2014/',
'2015/',
'rbxslider/',
'slideshow-gallery/',
'uigen_2015/'
);

如何删除</lab/blog/wp-content/>

之前的所有值
shift @list until (shift (@list)=~m/wp-contnet/);

我试过这种方式但没有结果

4 个答案:

答案 0 :(得分:2)

另一种方式:

@array = grep /wp-content/../(?!)/, @array;

答案 1 :(得分:1)

关闭。

shift @array until $array[0] =~ /wp-content/;

或者如果可能没有任何东西需要删除,

while ($array[0] !~ /wp-content/) { shift @array; }

您可能希望确保不会永远循环。

while (@array && $array[0] !~ /wp-content/) { shift @array; }

答案 2 :(得分:0)

当您使用正确的阵列名称并更正&#34; wp-content&#34;中的拼写错误时,您已关闭,但这并未包含&#39; wp-content&# 39;看起来好像你想做的那个元素。以下检查移位前的第一个元素,而不是将其移开然后检查它:

TextView theText = (TextView) findViewById(R.id.the_text);

输出:

if (grep /wp-content/, @array){
    shift @array until $array[0] =~ /wp-content/;
}

print "$_\n" for @array;

答案 3 :(得分:0)

my $count = 0;
my @keep;
foreach (@array){
    $count++ if m|/lab/blog/wp-content/|;
    push @keep, $_ if $count > 0;
}
say foreach @keep;
/lab/blog/wp-content/
1-list.txt
2014/
2015/
rbxslider/
slideshow-gallery/
uigen_2015/