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