А удовлетворите, пожалуйста, любопытство. Что это за такие интересные данные?
11 июня 2011 г. 14:10 пользователь Aleksander Gorohovski <[email protected]> написал: > On Sat, 11 Jun 2011 12:36:27 +0300, Динар Жамалиев 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; > > Премного благодарен. > > В первоначальном варианте я путался понять зачем нужен был выбор > push @chanks, $2 if $2; | push @chanks, $2; > а теперь стало ясно, что не нужен. > > Оч.классно получается. > Хотя не учитывается возможный вариант, например, > если в последнем фрагменте (или другом) будет: > ... > {{bla8 {bla9} }{bla10}}123 > > то получится вывод из 2-х элементов > ... > {{bla8{bla9}} > {bla10}}123 > > а должен 1: > ... > {{bla8{bla9}}{bla10}}123 > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
