|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Timur V. Irmatov 2:5020/400 29 Aug 2001 14:52:48 To : vilfred Subject : Re: не понял как работает regex :( --------------------------------------------------------------------------------
>
>Hе, погоди, а всетки
>
>\2(w+) - '' => 'workshop' не подошло, хотя почему, ведь \2 пуст и пуст
>\2, т.е. должно совпасть и вообще несовпадаемое. Первый шаг по
>неизвестным причинам дает false, хотя почему не должен давать true...
>
"network workshop" =~ /^(\w+)(\w+) \2(+w)$/
Первая скобка матчит network. Вторая скобка не матчит ничего, т. к. за
network идет пробел. Снова возвращаемся к 1-й. Матчим networ, 2-я матчит k,
матчим пробел, дальше идет w, а \2 есть k. Возвращаемся ко 2-й. Для нее
больше альтернатив нет. Возвращаемся к первой, матчим netwo, 2-я матчит rk,
матчим пробел, дальше идет wo, а надо rk. Возвращаемся ко 2-й, матчим r, не
удается сопоставить пробел с k, возвращаемся к 1-й. Матчим netw ...
Эта чехарда продолжается, пока 1-я скобка не сопоставит net.
2-я сопоставляет work, матчим пробел, \2 матчит work, 3-я скобка забирает
shop.
Готово ...
--
Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
* Origin: Talk.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64886cd318e3.html, оценка из 5, голосов 10
|