Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите регулярку, выделение текста в переменную 
:(
    Опции темы
n0xi0uzz
Дата 14.4.2006, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 29.12.2004
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Подскажите, как выделить текст из переменной в другую переменную между тегами, допустим {code} и {/code}.
Спасибо.
PM MAIL WWW ICQ   Вверх
BlackLFL
Дата 14.4.2006, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



Код

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

PM WWW   Вверх
n0xi0uzz
Дата 14.4.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 29.12.2004
Где: Санкт-Петербург

Репутация: нет
Всего: 1



А если несколько раз в тексте/строке такие теги встречаются?
PM MAIL WWW ICQ   Вверх
nitr
Дата 14.4.2006, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Код

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

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

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


--------------------
PM   Вверх
sharq
Дата 15.4.2006, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



BlackLFL, nitr, зачем +, вдруг пусто между тегами smile

Код

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


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


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
vitaly1979
Дата 16.4.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



тоже подобный вопрос
например BBCODE распарсить
т.е. вместо {} - []
а эти [] используются в классах символов
как быть? 
PM MAIL   Вверх
sharq
Дата 16.4.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



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

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

m{\[code\]}


 smile  


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
vitaly1979
Дата 16.4.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



точно -)
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.