From: Robert Klemme Date: 2009-04-04T03:39:33+09:00 Subject: Re: how to substitute group of words in a line with another text On 03.04.2009 20:10, Muralidharan Regupathy wrote: > I am trying to create a routine which will convert text to SMS lingo > format. For example a sentence might contain "This should be done as > soon as possible". I have created a HASH which stores "ASAP" => "as soon > as possible". > My routine should parse the message and subsitute with "ASAP" and return > a string "This should be done ASAP". > > def SMSdeflater(message) > > @smsdictionary.each_pair do > |key, value| > tmpvalue = value.chomp.downcase > msg=message.chomp.downcase > puts "looking for <#{tmpvalue}> in <#{msg}>" > newmsg=msg.gsub(tmpvalue,key) > puts newmsg > end > > the above mentioned code is not working, any help is appreciated If there are not many phrases you can use Regexp.union: msg.gsub Regexp.union(@smsdictionary.keys) do |match| @smsdictionary[match] end Kind regards robert