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©}
end
Can anybody throw me a regex clue here?
Thanks!
Hey Roy,
On Sat, Apr 28, 2007 at 06:50:10AM +0900, [email protected] wrote:
So I’ve got N sets of <><><> on
Can anybody throw me a regex clue here?
You might want to try the scan method:
str = “1 ‘Not qualified’ 2 ‘Overquota’ 3 ‘Qualified’”
str.scan(/(\d+)\s+(’[^’]+’)+/).each do |match|
p match
end
Hope that helps!
Perhaps a little something like this:
str = “1 ‘Not qualified’ 2 ‘Overquota’ 3 ‘Qualified’”
rgx = /((\d+)\s+(’[^’]+?’))+/i
m = str.scan(rgx)
m.each do |match|
puts match.first
end
Duane J.
(canadaduane)
On 4/27/07, [email protected] [email protected] wrote:
So I’ve got N sets of <><><> on
r = %r/(\d+)\s+(‘[^’]*')/
s = “1 ‘Not qualified’ 2 ‘Overquota’ 3 ‘Qualified’”
s.scan(r) #=> [[“1”, “‘Not qualified’”], [“2”,
“‘Overquota’”], [“3”, “‘Qualified’”]]
Blessings,
TwP
Ah–that’s the magic! Thanks guys!
-Roy