Как получить индексы всех вхождений шаблона в строке

string = "Jack and Jill went up the hill to fetch a pail of water. Jack fell down and broke his crown. And Jill came tumbling after. "
d = string.match(/(jack|jill)/i) # -> MatchData "Jill" 1:"Jill"
d.size # -> 1

Кажется, это соответствует только первому появлению.
string.scan выполняет задание частично, но ничего не сообщает об индексе совпадающего шаблона.

Как мне получить список всех совпавших экземпляров шаблона и их индексов (позиций)?

11
задан Nakilon 17 July 2011 в 12:00
поделиться