Hi all, Erik Veenstra wrote: .... > s.split(/\s*<[^<>]*>\s*/).reject{|x| x.empty?} > > gegroet, > Erik V. - http://www.erikveen.dds.nl/ > As a newbie I thought I'd have a go at this. What I was trying to do was take Eriks code above, get the text between tags into an array and then print it out as: [message, the message to echo, Yes, unless data is included...] I can do it by the look of things but if there are any suggestions how to improve this I'd appreciate it. Ie is the {} the most efficient way to fill the array? Is there a better way to print it out? # -------------------------------- foo = " <td valign=\"top\">message</td> <td valign=\"top\">the message to echo.</td> <td valign=\"top\" align=\"center\">Yes, unless data is included in a character section within this element.</td> </tr> " # I want to fill an array so I can display in the format # [message, the message to echo, Yes, unless...] a = Array.new # I think I understand this. # /\s*<[^<>]*>\s*/ = find all tags # \s* find 0 or more spaces # <[^<>]*> find anything between and including <> # \s* as above # and reject them (.reject) # whats left (text between tags) use as x in the block |x| # x seemed to include empty strings so only add x to the array if not "" foo.split(/\s*<[^<>]*>\s*/).reject{|x| a.insert(-1,x) if x != ""} # Trying to find the best way to print this??? # nothing like what I want # puts "--- print a ---" print a # extra space after last item # puts "\n\n--- print \"[\" a.each{|x| print x + \", \" print \"]\" ---" print "[ " a.each{|x| print x + ", "} print "]" # close but must know array size # puts "\n\n print \"[\" + a[0] + \", \" + a[1] + \", \" + a[2] + \"]\"" print "[" + a[0] + ", " + a[1] + ", " + a[2] + "]\n" # probably the most 'right' output wise puts "\n\n--- for i in 0...a.length-1 ---" print "[ " for i in 0...a.length-1 print a[i] + ", " end print a[a.length-1] print "]" # -------------------------------- thanks, Mark