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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Konstantin Boyandin                  2:5020/400     26 Jul 2007  09:00:43
 To : Dmitry Kolvakh
 Subject : регексп
 -------------------------------------------------------------------------------- 
 
     Приветствую, Dmitry Kolvakh!
 
  DK>>> Есть строка вроде "...xxx...xxx...xxx...xxx...yyy...".
  DK>>> Количество xxx-ов произвольно. Hадо выделить фрагмент между
  DK>>> последним xxx и yyy. "xxx(.*?)yyy" выделяет между первым xxx и
  DK>>> yyy, т.е. отмена жадности регекспа через ? не работает назад. Как
  DK>>> решить?
 
  KB>>     Посредством "negative lookahead". С ходу:
 
  KB>>     $var =~ /xxx((?!.*?xxx.*).*?)yyy/;
 
  DK> Угу, про эту конструкцию я что-то забыл (давно не эхотажил :( )
  DK> Hо имхо можно упростить:
 
  DK> $var =~ /xxx((?!xxx).*?)yyy/;
 
     Hу, к lookahead стоит прибегать, только если нет возможности обойтись без
 (если я не путаю, это замедляет обработку). Если подумать, то расстановкой
 "якорей" (^, $) и снижением "жадности", твою конкретную задачу можно решить и
 без lookahead.
 
  DK> Твой вариант на мой взгляд менее изящен, но зато гораздо более очевиден
  DK> при чтении - это имхо важнее.
 
  DK> Интересно, а который быстрее работает?
 
     Без lookahead, по моему, должно быть быстрее. Если это не так, то рад, что
 ошибаюсь.
 
     Всего наилучшего,
 
 Константин
 
 Фантастическая реальность: http://boyandin.ru
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 регексп   Dmitry Kolvakh   25 Jul 2007 10:57:18 
 регексп   Konstantin Boyandin   25 Jul 2007 09:52:26 
 регексп   Ivan Frolkov   25 Jul 2007 14:16:08 
 регексп   Konstantin Boyandin   25 Jul 2007 19:07:48 
 регексп   Ivan Frolkov   26 Jul 2007 21:05:56 
 регексп   Slawa Olhovchenkov   26 Jul 2007 22:51:00 
 регексп   Ivan Frolkov   27 Jul 2007 00:02:21 
 регексп   Slawa Olhovchenkov   27 Jul 2007 00:44:52 
 регексп   Ivan Frolkov   27 Jul 2007 14:42:15 
 регексп   Slawa Olhovchenkov   27 Jul 2007 14:47:38 
 регексп   Ivan Frolkov   27 Jul 2007 15:06:16 
 регексп   Slawa Olhovchenkov   27 Jul 2007 15:11:32 
 регексп   Ivan Frolkov   27 Jul 2007 15:34:17 
 регексп   Slawa Olhovchenkov   27 Jul 2007 15:38:28 
 регексп   Konstantin Boyandin   27 Jul 2007 19:36:09 
 регексп   Konstantin Boyandin   27 Jul 2007 12:01:07 
 регексп   Dmitry Kolvakh   26 Jul 2007 09:34:30 
 регексп   Dmitry Kolvakh   26 Jul 2007 09:38:08 
 регексп   Konstantin Boyandin   26 Jul 2007 09:00:43 
 регексп   Dmitry E. Oboukhov   27 Jul 2007 12:49:17 
 регексп   Dmitry Kolvakh   06 Aug 2007 10:51:28 
Архивное /ru.perl/1667931ef094f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional