[Moscow.pm] parsing {string}{string} Regexp-Common etc.

Ivan Petrov i.petro.77.00 на gmail.com
Сб Июн 11 03:25:03 PDT 2011


On 13:21 Sat 11 Jun     , Aleksander Gorohovski wrote:
> 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 фактичски описан

> Вот еще бы на ссылку с описанием посмотреть
> :)

http://search.cpan.org/~jesse/perl/pod/perlre.pod


Подробная информация о списке рассылки Moscow-pm