# Using re's to break up a line. print "Please enter a line: " line = gets.chomp res = [ ] while res != '' # String leading blanks. line.sub!(/^\s*/, '') break if line == '' # See what the leading is for next action. if line[0].chr == '"' then # Quoted. line.sub!(/^"([^"]*)"/, '') res.push($1) elsif line.sub!(/^(\d+):(\S+)/, '') # Repeated with n: $1.to_i.times { res.push($2) } else # Just a word. line.sub!(/^(\S+)/, '') res.push($1) end end res.each { |x| print " [", x, "]\n" }