On Sat, 11 Jun 2011 13:06:22 +0300, Ivan Petrov wrote:
Простите, не учел возможность присутствия цифр после скобок, вот так
кажется
работает:
my @chanks;
my $str = "{bla1 {bl}a2} }123".
"{bla3 {b{la4} }123".
"{{bla5 {bla6} }bla7}".
"{{bla8 {bla9} }bla10}123";
$str =~ /^
((?: \{.+?\}\d* )(?=\{))
(
(?: \{.+?\}\d*(?=\{) ) (?{ push @chanks, $2 if $2; })
)+
(\{.+?\}\d*\z)
/x;
print join "\n", $1, @chanks, $2 , $3;
тоже какой-то изврат.
код в регекспах хорошо писать когда все другие способы исчерпаны.
а этот (топиковый) случай вообще в perlre фактичски описан
Вот еще бы на ссылку с описанием посмотреть
:)
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org