パンくず
Ruby Cookbook
正規表現のUNION
概要
正規表現のUNION
サンプル
class String # => freezeはオブジェクトの凍結 def mgsub(key_value_pairs=[].freeze) # => Hashのキーを配列に変換 regexp_fragments = key_value_pairs.collect { |k,v| k } # => Regexp.unionは引数の配列パイプ区切りの複数条件からなる正規表現として扱います。 gsub(Regexp.union(*regexp_fragments)) do |match| # => detectはfindのエイリアス key_value_pairs.detect{|k,v| k =~ match}[1] end end end puts "hage,hoge".mgsub([[/ha/,"HA"],[/ho/,"HO"]])
出力
HAge,HOge