Perl - 在变量中找到多个子串?

时间:2013-07-26 11:19:16

标签: perl substring

我是Perl的新手,我一直在使用这个网站几年寻找我曾经做过的其他项目的问题的答案,但我似乎无法找到答案到这一个..

我的脚本收到HTTP响应,其中包含我需要删除的数据以解析正确的信息。

到目前为止,我有这个用于子串..

my $output = substr ($content, index($content, 'Down'), index($content, '>'));

这似乎正在做它应该做的事情......找到单词'Down',然后将其子串,直到找到>

但是,字符串'Down'可以在响应中多次出现,并且在找到第一个示例后停止查看。

我如何才能让子字符串递归?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:5)

这样的一种方式:

my $x="aa Down aaa > bb Down bbb > cc Down ccc >";

while ($x =~/(Down[^>]+>)/g){
        print $1;
}

答案 1 :(得分:2)

另一种解决方案,无需迭代,只存储失败的东西。

use Data::Dumper;
my $x="aa Down aaa > bb Down bbb > cc Down ccc >";
my @downs = $x =~ m!Down([^>]+)>!gis;
print Dumper(\@downs);