Здравствуйте, alexxx50, Вы писали:
A>но работакт что то неправильно.
А нужно взять именно такой блок или текст в нём?
Во-втором случае, такое вот работает:
#!perl
$_ = '%IF% %PROGNOCATEGORY% %CATEGORYS% sometext... %ENDIF%';
m/%IF%
(?:
\s*
%[^%]+%
\s*
)*
(.*?)
%ENDIF%
/x;
print $1;
Здравствуйте, alexxx50, Вы писали:
MBy>>А нужно взять именно такой блок или текст в нём?
A>нужно что бы на выходе было так:
A>$1 = IF
A>$2 = PROGNOCATEGORY
A>$3 = %CATEGORYS% gdfgcvmnbvgf
A>$4 = ENDIF
На для именно такого блока вот такой код работает:
#!perl
$_ = '%IF% %PROGNOCATEGORY% %CATEGORYS% sometext... %ENDIF%';
m/%([^%]+)% \s*
%([^%]+)% \s*
(%[^%]+% .*) \s*
%([^%]+)%
/x;
print "$1\n$2\n$3\n$4";