Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

perl, регулярка, переменная со спец. симв. в качестве шаблона

245
10 октября 2007 года
~ArchimeD~
1.4K / / 24.07.2006
перла почти не знаю, а тут такая фича потребовалась

Цитата:

@array=
(
...
'blablabla\?',
...
);

...........

foreach $_line ( @array)
{
if ( @_[0] =~ /^$_line/ )
{
$result = 0;
last;
}
}


собственно, нужное мне значение - "blablabla?", поскольку в регулярках "?" - это спецсимвол, попытался заэкранировать. но ни в одном из следующих случаев

'blablabla\?',
'blablabla?',
"blablabla\?",
"blablabla?",

условие if ( @_[0] =~ /^$_line/ ) не выполняется, причем при гарантии что строка "blablabla?" содержится в @_[0]

может подскажет кто, как правильно задать значение переменной (или элемента массива) в данном случае?

ЗЫ. навскидку ничего умного не нашел, если я неправ - скажите.

7.8K
11 октября 2007 года
Tingo
201 / / 17.05.2007
хмм... а точно @_[0] содержит нужную строку.

Цитата:
если я неправ - скажите.

(c)

245
11 октября 2007 года
~ArchimeD~
1.4K / / 24.07.2006
100 пудов.
я в общем сделал все через ж**у, а именно:
Код:
@array=
(
...
'blablabla\?',
...
);

...........

foreach $_line ( @array)
{
$_line =~ s/\\?/'\?'/eg
if ( @_[0] =~ /^$_line/ )
{
$result = 0;
last;
}
}

заработало... но это все-таки, по моему не нормально... толи интерпретатор тупит так, толи я... интерпретатор - виндовый ccperl (нет, не смотрите на меня так, это не у меня дома ;) )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог