Показать сообщение отдельно
  #99 (permalink)  
Старый 31.07.2012, 22:34
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Сообщение от oneguy Посмотреть сообщение
Dim@, я постараюсь объяснить. Вы понимаете как работают обратные ссылки? Они ловят ту же подстроку, которая была поймана в захватывающие скобки с указанным порядковым номером.
/
  (.+) // ловит несколько звёдочек (допустим, n)
  (?=\1* // количество звёздочек, кратное n, \1 ловит ту же подстроку, которая была захвачена в (.+)
  , //символ запятая
  \1+ //количество звёздочек, кратное n
  $ //конец входящей строки
/

Следовательно, поиск удаётся только когда n является общим делителем количества звёздочек слева и справа от запятой. Поскольку использовался жадный квантификатор, то интерпретатор остановился на наибольшем общем делителе указанных чисел.
(.+) действительно вначале проверяет всю входящую строку, но дальше поиск не удаётся, поэтому постепенно сокращает количество в квантификаторе.
Во, oneguy вабще отлично объяснил)))
Ответить с цитированием