From: Dirk Traulsen Date: 2007-10-24T21:00:55+09:00 Subject: Re: format string for array question Or you could use "zero-width positive lookahead" /(?=)/ with -? for possible negative numbers: s = "db file parallel -write 8816 391 -25.49" p s.split(/\s+(?=-?\d)/) #=> ["db file parallel -write", "8816", "391", "-25.49"]