我怎样才能让perl grep执行正则表达式捕获

时间:2012-05-29 00:05:50

标签: perl

我试图通过在下面的代码中获取(。*)的内容,使用grep捕获使用grep捕获子字符串。

            @substring = grep /^test-results(.*)/,@$(array_reference);

这不起作用....

2 个答案:

答案 0 :(得分:8)

在列表上下文中,正则表达式匹配返回其捕获匹配的列表,因此您只需要:

@substrings = map /^test-results(.*)/, @$array;

答案 1 :(得分:6)

map功能可能更适合您的需求。您正在寻找类似于以下(未经测试)代码的内容:

@substrings = map { /^test-results(.*)/ ? $1 : () } @{ $arrayref };