From: Robert Klemme Date: 2007-10-23T15:55:28+09:00 Subject: Re: format string for array question 2007/10/22, Robert Keller : > I have a great deal of data that looks like the line below > > "db file parallel write 8816 391 25.49" > > > The code to bring this into an array had a problem due to the spaces in the test > string "db file parallel write" I'd be happy to turn "db file parallel write" into > db_file_parallel_write (with underscores) first then just split the string, but all > of the regex I've tried so far has had negative effects on the rest of the string with the numbers. Why not match directly: irb(main):002:0> s="db file parallel write 8816 391 25.49" => "db file parallel write 8816 391 25.49" irb(main):003:0> m=s.match(/^(.+\b)\s+(\d+)\s+(\d+)\s+(\d+(?:\.\d+)?)$/) => # irb(main):004:0> (1..4).each {|i| p m[i]} "db file parallel write" "8816" "391" "25.49" => 1..4 Kind regards robert