rails で文字列置換を行う際に対応表で置換する方法を備忘録として残しておく
方法
gsub メソッドに対して、第1引数に正規表現、第2引数に Hash を渡すことで実現する
環境
- ruby: 3.0.4
- rails: 6.1.6.1
実際のコード
# 変換用の対応表
convert_map = {
'a' => 'A',
'b' => 'B',
'd' => 'D'
}
#=> {"a"=>"A", "b"=>"B", "d"=>"D"}
# 以下と同義
# "adcacbd".gsub(/a|b|d/, { 'a' => 'A', 'b' => 'B', 'd' => 'D' })
"adcacbd".gsub(Regexp.new("#{convert_map.keys.join('|')}"), convert_map)
#=> "ADcAcBD"