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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регекспы в переменных, Загнать регексп(ы) в переменную(ые) 
:(
    Опции темы
biophreak
Дата 13.7.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Народ - вопрос такой - как загнать регексп в переменную, чтоб потом его можно было юзать?


Код

my $test = "/^([0-9]){6}\z/";
if ($dst =~ $test) { return $dst; }

не пашет...подскажите плз smile

Это сообщение отредактировал(а) biophreak - 13.7.2007, 12:41
PM MAIL ICQ Jabber   Вверх
amg
Дата 13.7.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



Код

my $test = qr/^([0-9]){6}\z/;
if ($dst =~ /$test/) { return $dst; }

Кстати, что имелось в виду под "\z"?
PM MAIL   Вверх
biophreak
Дата 13.7.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо огромное...а \z это я так....первое что в голову пришло smile)) регексп, я больше чем уверен - не рабочий smile))



Это сообщение отредактировал(а) biophreak - 13.7.2007, 12:50
PM MAIL ICQ Jabber   Вверх
amg
Дата 13.7.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



Почему не рабочий? Синтаксических ошибок нет. А \z не является метасимволом и означает просто букву z

Добавлено через 7 минут и 27 секунд
Вру. Есть такой метасимвол! Означает действительный конец строки. Не знал.
PM MAIL   Вверх
biophreak
Дата 13.7.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Кстати...всплыл еще вопросец по теме: 

у меня регэксп из конфига читается и qr там не прокатывает smile
юзаю Config::IniFiles; как он их там парсит я уже хз, он отдает хеш сразу

Можете что-нибудь подсказать?

ЗЫЖ Вот пример кода, кстати:
Код

my %ini;                                                                   
tie %ini, 'Config::IniFiles', ( -file => "/opt/radius/acct/config.ini" );                                         
$e164route::cfg = Config::IniFiles->new( -file => "/opt/radius/acct/config.ini" );  
# а берется оттуда чето типа $e164route::debug=$ini{main}{debug};
# а в самом конфиге выглядит так:
# [main]                                                                     
# debug                           = 1                                        
# profiling                       = 1  


Это сообщение отредактировал(а) biophreak - 13.7.2007, 13:24
PM MAIL ICQ Jabber   Вверх
amg
Дата 13.7.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



Должно и с qr получаться. У меня, правда, модуль Config::IniFiles не стоит, проверить нет возможности, но должно работать
Код

# так 
$test = $cfg->val( 'Section', 'Parameter' ); 
if ($dst =~ /\Q$test/) { return $dst; } # \Q - на всякий случай

# и так
$test = qr(\Q$cfg->val( 'Section', 'Parameter' )); # \Q - на всякий случай
if ($dst =~ /$test/) { return $dst; }


Добавлено через 2 минуты и 19 секунд
# и так тоже
if ($dst =~ /\Q$cfg->val( 'Section', 'Parameter' )/) { return $dst; }
PM MAIL   Вверх
biophreak
Дата 13.7.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не работает :(
PM MAIL ICQ Jabber   Вверх
amg
Дата 13.7.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



biophreak, ничего не понял. 
Поставил я себе модуль Config::IniFiles. Работает. После того, как ты tie сделал, весь файл у тебя уже в хэше %ini. Можешь читать его, записывать - все изменения в хэше отобразятся на файл. Зачем 3-я строка в твоем примере? И на что напускать регулярное выражение?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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