|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : InSAn 2:5020/400 04 May 2001 09:27:27 To : All Subject : Re: Проверка на принадлежность --------------------------------------------------------------------------------
> >> @array есть ("?","!","...")
> >> $scalar - "нифига"
>
> rcou> Правленое и проверенное:
>
> rcou> my $line="abcdef!!!";
> rcou> my $mask=("\Q".join('|',qw(? ! + .))."\E");
>
> '\b('.join('|',map("\\Q$_\\E",@array)).')\b'
>
> все-таки...
Вариант 1:
---------------------------
@array = ('AAA','bbb');
$mask = '\b('.join('|',map("\\Q$_\\E",@array)).')\b';
$text = 'ddd eee AAA fff ggg';
if ($text =~ /$mask/i) { print 'Ok' }
else { print 'Fig' }
---------------------------
Результат - Fig
===
Вариант 2:
---------------------------
@array = ('AAA','bbb');
$text = 'ddd eee aaa fff ggg';
if ($text =~ /\b(\QAAA\E|\Qbbb\E)\b/i) { print 'Ok' }
else { print 'Fig' }
---------------------------
Результат - Ok
Почему если вместо переменной $mask в выражение писать ее значение, то все -
Ok, иначе - Fig?
--
- ---
Best regards, InSAn
http://delphi.proext.com - Delphi-программисту
http://adv.proext.com - Магазин сетевой рекламы
http://shop.proext.com - Лучшие книги!
Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
* Origin: Talk.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488d625adac.html, оценка из 5, голосов 10
|