Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Подскажите регулярку


Автор: n0xi0uzz 14.4.2006, 18:40
Подскажите, как выделить текст из переменной в другую переменную между тегами, допустим {code} и {/code}.
Спасибо.

Автор: BlackLFL 14.4.2006, 19:33
Код

my($code) = $str =~ /{code}([^{]+){\/code}/;

Автор: n0xi0uzz 14.4.2006, 22:37
А если несколько раз в тексте/строке такие теги встречаются?

Автор: nitr 14.4.2006, 22:44
Код

#/usr/bin/perl -w
my $str = q%
{code}hi{/code}
{code}this is code{/code}
%;

while ($str =~ /{code}([^{]+){\/code}/g) {
  print "$1\n";
}

это с вашим кодом...

Автор: sharq 15.4.2006, 21:07
BlackLFL, nitr, зачем +, вдруг пусто между тегами smile

Код

my   @code;
push @code, $str =~ /{code}([^{]*){\/code}/smg;


smile
Добавлено @ 21:09
Может следует ключик i добавить.

Автор: vitaly1979 16.4.2006, 16:48
тоже подобный вопрос
например BBCODE распарсить
т.е. вместо {} - []
а эти [] используются в классах символов
как быть? 

Автор: sharq 16.4.2006, 17:17
vitaly1979
Цитата(vitaly1979 @  16.4.2006,  17:48 Найти цитируемый пост)
т.е. вместо {} - []
а эти [] используются в классах символов
как быть?  

экранировать их, т.е.
Код

m{\[code\]}


 smile  

Автор: vitaly1979 16.4.2006, 17:23
точно -)
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)