From: "trans. (T. Onoma)" Date: 2004-10-18T01:12:20+09:00 Subject: More better way to split off blank lines In the following code, write_stack is an array composed of special marker objects and strings, and I've extended String with the #blank? method. I want to split any space which includes a newline from the front and back of the strings and make them their own elements in the array. Note: as the last line indicates, I don't necessarily need the new_stack, if it can be done just by modifying the write_stack instead. # split off blank lines new_stack = [] write_stack.each_index{ |i| # if string and not blank if write_stack[i].respond_to?(:blank?) && ! write_stack[i].blank? md = /^(\s*\n\s*)(\S.*\S)(\s*\n\s*)$/.match(write_stack[i]) if md new_stack << md[1] if md[1].length > 0 new_stack << md[2] new_stack << md[3] if md[3].length > 0 else new_stack << write_stack[i] end else new_stack << write_stack[i] end } write_stack = new_stack Is there a nicer way to do this? Thanks, T.