From: timr Date: 2009-08-28T17:25:08+09:00 Subject: I need a string#all_indices method--is there such a thing? In ruby you can use string#index as follows: str = "some text" str.index(/t/) =>5 But what if I want to get all the indices for a regex in the string? Is there an string#all_indices method? I wrote the following, which works, but there must be a more elegant way: class String def all_indices(regex) indices = [] index = 0 while index && index < self.length #index will be nil upon first match failure, otherwise quit loop when index is equal to string length index = self.index(regex, index) if index.is_a? Numeric #avoids getting a nil into the indices array indices << index index +=1 end end indices end end p "this is a test string for the ts in the worldt".all_indices(/t/) p "what is up with all the twitter hype".all_indices(/w/) # >> [0, 10, 13, 16, 26, 30, 36, 45] # >> [0, 11, 25]