無慈悲な置換
text = "可愛い女の子かと思った? 残念! さ や か ち ゃ んでした!"
lexicon = {
"残念"=> "そうよ",
"さ や か ち ゃ ん" => "にこにー",
"でした!" => "よ! にっこにっこにー"
}
terms = lexicon.keys.map { |key| Regexp.escape(key) }.join("|")
#=> "残念|さ\\ や\\ か\\ ち\\ ゃ\\ ん|でした!"
pattern = Regexp.new(terms)
#=> /残念|さ\ や\ か\ ち\ ゃ\ ん|でした!/
text.gsub(pattern, lexicon)
#=> "可愛い女の子かと思った? そうよ! にこにーよ! にっこにっこにー"