<div><div><div>вариант не срабатывает со строкой</div><div><br></div><div><div>    my $str = "{bla1 {bl}a2} }123".</div><div>            "{bla3 {b{la4} }123".</div><div>            "{{bla5 {bla6} }bla7}".</div>
<div>             "{{bla8 {bla9} }{bla10}}123".</div><div>            "{{bla8 {bla9} }bla10}123";</div></div><div><br></div><div>результат  :</div><div><br></div><div>$VAR1 = [</div><div>          '{bl}',</div>
<div>          '{la4}',</div><div>          '{bla6}',</div><div>          '{bla9}',</div><div>          '{bla10}',</div><div>          '{bla9}'</div><div>        ];</div></div></div>
<div><br></div><br><div class="gmail_quote">11 июня 2011 г. 14:23 пользователь Ivan Petrov <span dir="ltr"><<a href="mailto:i.petro.77.00@gmail.com">i.petro.77.00@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
>>>>> Сейчас через Regexp::Common делаю так:<br>
>>>><br>
>>>>> my @f = /$RE{balanced}{-parens=>'{}'}/g;<br>
>>>><br>
>>>> какой-то изврат<br>
>><br>
>>> Не согласен.<br>
>><br>
>> зря.<br>
>><br>
>>> 'any symbol' --- могут быть \w \d, а также<br>
>>> парные сочетания скобок ()[]{} и вложенные тоже<br>
>>> :)<br>
>><br>
>> этого в исходном задании не было. ну да ладно.<br>
<br>
> any symbol --- любой символ(ы) (дословно)<br>
<br>
>> тогда как-нибудь так:<br>
>><br>
>>    /( \{ (?>[^{}]*) (?:\}\d*|(?1) \} \d*) )/gx;<br>
<br>
> Увы,<br>
> тяп-ляп, абы как не проходит:<br>
<br>
> Sequence (?1...) not recognized in regex; marked by <-- HERE in m/(<br>
> \{ (?>[^{}]*) (?:\}\d*|(?1 <-- HERE ) \} \d*) )/<br>
<br>
</div>это Вы что-то не так скопипастили:<br>
<div class="im"><br>
$ perl <a href="http://test.pl" target="_blank">test.pl</a><br>
$VAR1 = [<br>
          '{any symbol}',<br>
          '{any symbol}1',<br>
</div>          '{sym{bol{}}}4'<br>
<div class="im">        ];<br>
<br>
<br>
$ cat <a href="http://test.pl" target="_blank">test.pl</a><br>
#!/usr/bin/perl<br>
<br>
use warnings;<br>
use strict;<br>
<br>
use Data::Dumper;<br>
<br>
</div>my $str = '{any symbol}{any symbol}1{any {sym{bol{}}}4';<br>
my @items = $str =~ /( \{ (?>[^{}]*) (?:\}\d*|(?1) \} \d*) )/gx;<br>
<br>
print Dumper \@items;<br>
<div><div></div><div class="h5"><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br>