From: William James Date: 2006-11-02T07:55:16+09:00 Subject: Re: regex capture and assign... in one line? Nate Murray wrote: > Question, I've been using Ruby for a while now and I have a perlism I > kind of miss. > > Given > > $str = "foo123"; > > my ($foo,$bar) = $str =~ /(\w+)(\d+)/; > > # now we have > $foo; #=> "foo" > $bar; #=> "123" > > I know that I can do this in Ruby in TWO lines, but I want to do it in > ONE line. Anyone have any ideas? str = "foo123" foo, bar = str.split( /^(\D*)/ )[1..-1] foo, bar = str.scan( /\D+|\d+/ )