У меня есть строка, содержащая несколько экземпляров данных в квадратных скобках.
[data 1] junk [data 2] junk,junk [data 3] junk [data 4]
У кого-нибудь есть регулярное выражение goo?Так что я могу использовать
print $1,$2,$3,$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;
Если все, что вам нужно, это быстрая распечатка, это следует сделать ..
$s = q( [data 1] junk [data 2] junk,junk [data 3] junk [data 4] ); print join(', ', @{[$s =~ /\[(.*?)\]/g]}), "\n";
$s = q( [data 1] junk [data 2] junk,junk [data 3] junk [data 4] );
print join(', ', @{[$s =~ /\[(.*?)\]/g]}), "\n";