Замена слова может быть выполнена с использованием gsub()
с \b
для соответствия границе слова :
irb(main):001:0> 'foo bar baz foo bar'.gsub /\bfoo\b/, 'replaced'
=> "replaced bar baz replaced bar"
Вот более полное решение со словарем слов для замены:
repl = {'foo'=>'apple', 'baz'=>'banana'}
s = 'foo bar baz foo bar'
for from, to in repl:
s = s.gsub /\b#{from}\b/, to
end
Результат: apple bar banana apple bar