2

我对 Perl 很陌生,几年来我一直在使用这个网站来寻找关于我一直在从事的其他项目的问题的答案,但我似乎找不到这个问题的答案..

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

到目前为止,我有这个作为子字符串..

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

这似乎正在做它应该做的事情..找到这个词'Down',然后将它串起来,直到它找到一个>.

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

我将如何让子字符串递归?

谢谢你的帮助 :)

4

2 回答 2

5

像这样的一种方式:

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

while ($x =~/(Down[^>]+>)/g){
        print $1;
}
于 2013-07-26T11:26:39.827 回答
2

另一种解决方案,无需迭代,只需存储已关闭的内容。

use Data::Dumper;
my $x="aa Down aaa > bb Down bbb > cc Down ccc >";
my @downs = $x =~ m!Down([^>]+)>!gis;
print Dumper(\@downs);
于 2013-07-26T11:30:57.910 回答