|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry Kolvakh 2:5054/89.1 26 Jul 2007 09:38:08 To : Konstantin Boyandin Subject : регексп -------------------------------------------------------------------------------- 25 Jul 07, Konstantin Boyandin wrote to 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/; Угу, про эту конструкцию я что-то забыл (давно не эхотажил :( ) Hо имхо можно упростить: $var =~ /xxx((?!xxx).*?)yyy/; Твой вариант на мой взгляд менее изящен, но зато гораздо более очевиден при чтении - это имхо важнее. Интересно, а который быстрее работает? -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 * Origin: Я пpишел к тебе с дискетой pассказать,что сеть упала (2:5054/89.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/281446a817a3.html, оценка из 5, голосов 10
|