|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Boyandin 2:5020/400 25 Jul 2007 19:07:48 To : Ivan Frolkov Subject : регексп --------------------------------------------------------------------------------
Приветствую, Ivan Frolkov!
DK>>> Есть строка вроде "...xxx...xxx...xxx...xxx...yyy...".
DK>>> Количество xxx-ов произвольно. Hадо выделить фрагмент между последним
DK>>> xxx и yyy. "xxx(.*?)yyy" выделяет между первым xxx и yyy, т.е. отмена
DK>>> жадности регекспа через ? не работает назад. Как решить?
KB>> Посредством "negative lookahead". С ходу:
KB>> $var =~ /xxx((?!.*?xxx.*).*?)yyy/;
IF> "Саnst thou nоt соме in bу usual way аs dесепt реорlе dо?"
IF> $var =~ /.*x+([^y]+)/;
Продемонстрируй, умник, как твой пример справится вот с этим хотя бы:
"xxx...yy..yyy"
(должен вернуть "...yy..")
Я дал решение для общего случая, частные оптимизации - отдельный вопрос.
Всего наилучшего,
Константин
Фантастическая реальность: http://boyandin.ru
--- ifmail v.2.15dev5.3
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16679604a5c7a.html, оценка из 5, голосов 10
|