[Moscow.pm] parsing {string}{string} Regexp-Common etc.
Aleksander Gorohovski
angel на feht.dgtu.donetsk.ua
Сб Июн 11 03:36:43 PDT 2011
On Sat, 11 Jun 2011 13:23:56 +0300, Ivan Petrov wrote:
<кусь>
>> Sequence (?1...) not recognized in regex; marked by <-- HERE in m/(
>> \{ (?>[^{}]*) (?:\}\d*|(?1 <-- HERE ) \} \d*) )/
>
> это Вы что-то не так скопипастили:
Спасибо.
Перепроверил по вашему образцу.
> $ perl test.pl
> $VAR1 = [
> '{any symbol}',
> '{any symbol}1',
> '{sym{bol{}}}4'
> ];
>
>
> $ cat test.pl
> #!/usr/bin/perl
>
> use warnings;
> use strict;
>
> use Data::Dumper;
>
> my $str = '{any symbol}{any symbol}1{any {sym{bol{}}}4';
> my @items = $str =~ /( \{ (?>[^{}]*) (?:\}\d*|(?1) \} \d*) )/gx;
>
> print Dumper \@items;
Всё равно та же ошибка.
По всей видимости у Вас версия Perl поновее будет.
Я сам в раздумьях подобрать эквивалент (?1),
пока не соображу...
(?\1) --- не подходит
(?$1) --- результат не тот
$VAR1 = [
'{any symbol}',
'{any symbol}1',
'{}'
];
У меня:
$ perl -v
This is perl, v5.8.8 built for i386-linux-thread-multi
(with 2 registered patches, see perl -V for more detail)
Подробная информация о списке рассылки Moscow-pm