LINUX.ORG.RU

Perl. Регулярки.

 ,


0

1

Подскажите, как написать регулярку, вибирающую все символы между % и %.

%
text
texxxxt
texxxxxxxt
%

%
also text
sample text
regexp
%

...

Конструкция вида:

/\%(.*?)\%/

не работает.

Заранее спасибо.


Ответ на: комментарий от vurdalak

А в чём фишка ".*?"?

Отключает жадность. Без вопросительного знака ты из строки «%123%456%» достанешь «123%456», а с ним только «123»

kim-roader ★★ ()
$ echo '%
text
texxxxt
texxxxxxxt
%' | perl -e '$t; while(<>) { if( $_ =~ /^\%$/) { next; } $t .= $_; } print "$t"; '
text
texxxxt
texxxxxxxt

Да, не регулярка.

Difrex ★★★★ ()
Последнее исправление: Difrex (всего исправлений: 1)
$ echo '%                                                              
text
texxxxt
texxxxxxxt
%' | perl -e 'while(<>){ print unless /%/ .. /%/; }'

См Perl Flip-Flop.

joy4eg ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.