From: Tim Pease Date: 2007-04-28T07:15:00+09:00 Subject: Re: regexp help needed On 4/27/07, rpardee@gmail.com wrote: > Hey All, > > I need to parse lines that look like this: > > > 1 'Not qualified' 2 'Overquota' 3 'Qualified'/ > 1 'SSI' 2 'Mall Facility'/ > 1 'Real Interview' 2 'Practice Interview'/ > > > So I've got N sets of <><><> on > each line. I want to grab each of the digits & labels, but I'm having > trouble w/the repetition stuff. Below is a simple script that doesn't > work--it grabs the first set, but seems to ignore the rest. > > str = "1 'Not qualified' 2 'Overquota' 3 'Qualified'" > rgx = /((\d+)\s+(\'[^']+?\'))+/i > m = rgx.match(str) > unless m.nil? > m.captures.each {|c| puts(c)} > end > r = %r/(\d+)\s+('[^']*')/ s = "1 'Not qualified' 2 'Overquota' 3 'Qualified'" s.scan(r) #=> [["1", "'Not qualified'"], ["2", "'Overquota'"], ["3", "'Qualified'"]] Blessings, TwP