Ruby

gsub meets hash

More than 3 years have passed since last update.


無慈悲な置換

text = "可愛い女の子かと思った? 残念! さ や か ち ゃ んでした!"

lexicon = {
"残念"=> "そうよ",
"さ や か ち ゃ ん" => "にこにー",
"でした!" => "よ! にっこにっこにー"
}

terms = lexicon.keys.map { |key| Regexp.escape(key) }.join("|")
#=> "残念|さ\\ や\\ か\\ ち\\ ゃ\\ ん|でした!"
pattern = Regexp.new(terms)
#=> /残念|さ\ や\ か\ ち\ ゃ\ ん|でした!/

text.gsub(pattern, lexicon)
#=> "可愛い女の子かと思った? そうよ! にこにーよ! にっこにっこにー"


参考