perl -e 'my $re; $re = qr/{[^{}]*(??{$re})*[^{}]*}/; my @r =
("{a{a}}1{b{{b}}b}{{c}c}3" =~ /($re)/g); print join "\n", @r, "";'

Только в Regexp::Common хитрее регулярка.

2011/6/11 Динар Жамалиев <[email protected]>:
> я поковырялся в Regexp::Common, там как раз такой подход исользуется
>
> 11 июня 2011 г. 18:50 пользователь Ivan Petrov <[email protected]>
> написал:
>>
>> > Я сам в раздумьях подобрать эквивалент (?1),
>> > пока не соображу...
>>
>> я кажись вспомнил. рекурсии в регекспах старого перла можно было
>> делать только явно, то есть
>>
>> my $regexp;
>> $regexp = qr{что-то там (??{ $regexp } ) что-то дальше };
>>
>> и вот уже с этим можно было работать так
>>
>> $str =~ /$regexp/;
>>
>> но на том уровне развития это тоже было извращением (как мне кажется)
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить