|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Timur V. Irmatov 2:5020/400 29 Aug 2001 14:18:04 To : vilfred Subject : Re: не понял как работает regex :( -------------------------------------------------------------------------------- vilfred wrote in message <9midpt$l10$1@host.talk.ru>... > >Великомудрый Алл!! > >Есть пример из кукбука "найти совпадение": > >$u='network'; >$m='workshop'; >print "перекрытие $2 найдено: $1$2$3\n" if("$u $m" =~/^(\w+)(\w+) \2 >(\w+)$/); > >(\w+) жрет все слово network. Далее остается еще один (\w+), далее идет >пробел, т.к. вся строка "network workshop". Движок (regexp engine) при сопоставлении второй (\w+) видит пробел и возвращется к первой скобке и сопоставляет networ, для второй остается k, матчит пробел, но дальше в строке идет w, а не k. Engine снова возвращается к первой (\w+) ... Этот процесс идет до тех пор, пока для первой скобки не будет сопоставлен net, соответственно для второй - work, третьей - shop... Тимур -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64886d24dafe.html, оценка из 5, голосов 10
|