如何使用perl在一行中多次出现的方括号之间提取数据?

时间:2011-01-14 15:55:36

标签: regex perl data-processing

我有一行包含方形括号数据的多个实例。

[data 1] junk [data 2] junk,junk [data 3] junk [data 4]

有人有goo正则表达式吗?所以我可以使用

print $1,$2,$3,$4;

谢谢!

3 个答案:

答案 0 :(得分:7)

使用Text::Balanced代替正则表达式。

答案 1 :(得分:4)

my $s = "[data 1] junk [data 2] junk,junk [data 3] junk [data 4]";
my ($one, $two, $three, $four) = $s =~ /\[([^\]]*)\]/g;
print $one, $two, $three, $four;

答案 2 :(得分:1)

如果您所需要的是快速打印输出,那么应该这样做..

$s = q( [data 1] junk [data 2] junk,junk [data 3] junk [data 4] );
print join(', ', @{[$s =~ /\[(.*?)\]/g]}), "\n";