From: Matthew Moss Date: 2006-05-06T05:09:27+09:00 Subject: Re: Newbie question Here's a quick attempt: x = ["&Edit", "P&roject", "Noamp", "Vi&ew", "S&le", "T&ree"] y = Hash.new { |h,k| h[k] = Array.new } x.each do |s| if m = /&(.)/.match(s) y[m[1].downcase] << s end end y.values.select { |v| v.size > 1 }.flatten => ["&Edit", "Vi&ew", "P&roject", "T&ree"]