Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexey Mahotkin                      2:5020/400     29 Apr 2004  23:23:13
 To : "Dmitry Y. Labutin"
 Subject : Re: Регулярное выражение
 -------------------------------------------------------------------------------- 
 
 >>>>> "DYL" == Dmitry Y Labutin <dmitry@incub.ru> writes:
 
  DYL> Приветствую.  Подскажите, как написать регулярное выражение, которое
  DYL> бы выделяло строки содержащие подстроку "qwe", но не содержащие
  DYL> подстроку "ewq".  Т.е. как одним регэкспом записать это: if ($str =~
  DYL> /qwe/ && $str !~ /ewq/) { что-то там;
  DYL> }
 
  AC> Можно.  Через negative look-ahead.  Что-то типа /(?!^.*ewq).*qwe/
 
  DYL> А как быть, если переменная многострочная?
 
  DYL> $q = "qwerty\nytrewq\n"; if ($q =~ /(?!^.*ewq).*qwe/) { print "1";
  DYL> }
 
  DYL> Как сделать, чтобы "1" не печаталось?
 а зачем тебе вообще такое понадобилось?
 
 negative lookahead недостаточно.  он выделяет, например, строки "ewq qwe" и
 "ewqwe".
 
 явно формулировка условия по-человечески и есть лучшее представление.
 Разве что если только ты не пытаешься поглубже изучить регексы, да и то их
 вычислительную мощность сильно преувеличивают.
 
 --alexm
 --- ifmail v.2.15dev5.3
  * Origin: tyranny (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Регулярное выражение   Dmitry Y. Labutin   29 Apr 2004 20:47:56 
 Re: Регулярное выражение   Artem Chuprina   29 Apr 2004 21:28:13 
 Re[2]: Регулярное выражение   Dmitry Y. Labutin   29 Apr 2004 21:37:53 
 Re: Регулярное выражение   Alexey Mahotkin   29 Apr 2004 23:23:13 
 Re[2]: Регулярное выражение   Renat Araslanow   30 Apr 2004 22:26:45 
Архивное /ru.perl/3865f73bd09b.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional