From: Gustavo Carvalho Date: 2008-11-19T21:53:04+09:00 Subject: Re: ruby global regex question. I use this as an equivalent to global match: class Regexp def global_match(str, &proc) retval = nil loop do res = str.sub(self) do |m| proc.call($~) # pass MatchData obj '' end break retval if res == str str = res retval ||= true end end end re = /.../ re.global_match(...) do |m| ... end On Tue, Nov 18, 2008 at 9:06 PM, knohr wrote: > For the life of me, i can't figure out a ruby equivalent to perl's /g > > basically, i want to do the following > > > while htmlSource=~m/(.*?)<\table>/g do > tableSource=$1 > tableSource=~m/Index (\d+)/ > indexNumber=$1 > > while tableSource=~m/(.*?)<\/tr>/g do > tableRowSource=$1 > doSomethingWith(tableRowSource, indexNumber) > end#while tableSource > > end#while htmlSource > > > I will actually need to pull multiple vars, not just a single one, > from the regex > I will need to do the outer loop an unknown amount of times per > document (0-20) and i will need to loop the inner an unknown amount of > times (0-29) > > > Thread safe would be a plus. > > > any suggestions? > >