環境
- Ruby3
やりたいこと
gsub何回も重ねるのは非効率なので一括置換したい
コード
gsubdict = {
"ストロベリー" => "strawberry",
"パイナップル" => "pineapple"
}
original_text = "ストロベリーパフェとパイナップルジュース"
# gsub と Regexp.union を使用して文字列を置換
result = original_text.gsub(Regexp.union(gsubdict.keys), gsubdict)
puts result
注意点
渡すハッシュのキーは文字列でないといけない。シンボルは不可、つまり
gsubdict = {
"ストロベリー": "strawberry",
"パイナップル": "pineapple"
}
は動作しない。