From: Ross Bamford Date: 2006-03-13T17:23:56+09:00 Subject: Re: What's the best way to split this kind of string? On Mon, 2006-03-13 at 16:58 +0900, Sam Kong wrote: > Hi! > > I'm trying to make a routine to make a Morris Number Sequence. > (http://www.ocf.berkeley.edu/~stoll/number_sequence.html) > I need to split a string in the following way, for example. > > "111223133" => ["111", "22", "3", "1", "33"] > > I can loop thru the string by each character, comparing with the > previous character. > But is there a quick and easy way? > Probably a regular expression? Maybe something like: s.scan(/(\d)(\1*)/).map! { |e| e.join } # => ["111", "22", "3", "1", "33"] or: s.scan(/0+|1+|2+|3+|4+|5+|6+|7+|8+|9+/) # => ["111", "22", "3", "1", "33"] -- Ross Bamford - rosco@roscopeco.REMOVE.co.uk