LoginSignup
32

More than 3 years have passed since last update.

【Ruby】 gsubで複数の文字パターンを置換する方法

Posted at

はじめに

複数の文字パターンを置換したいときにgsubでメソッドチェーン?を利用して置換文字数分gsubを呼ばないといけないと思っていたので、置換する対象をハッシュで渡せる方法をまとめてみました。

復習

sub【初めにマッチした部分のみ置換】

"hogehoge".sub("hoge","ruby")
=> "rubyhoge"

gsub【マッチした部分をすべて置換】

"hogehoge".gsub("hoge","ruby")
=> "rubyruby"

本題

複数の文字パターンを置換したい場合

gsub【マッチした部分をすべて置換+複数のパターンを置換】

"hogeはrubyです".gsub(/hoge|ruby/, "hoge" => "私", "ruby" => "男")
=> "私は男です"

第1引数で渡した正規表現に該当する文字を、第2引数のパターンにそって置換してくれるそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32