ひよこめも

自分用の記録です

gsub, subの使い方 (ruby)

やりたいこと

  • string型のデータを置換したりしたい
  • gsub正規表現の中で変数を使いたい(これは正規表現の話かな?)

コード

str = "apple pie and apple pen are made from apple." 

p str.gsub(/apple/, 'banana') #=> "banana pie and banana pen are made from banana."
p str.sub(/apple/, 'banana') #=> "banana pie and apple pen are made from apple."

words = ['pie', 'pen']
words.each do |word|
  str.gsub!(/#{word}/, 'jelly') #=>"apple jelly and apple jelly are made from apple."
end

p str

めも

  • subは複数の置換対象があった場合に最初の一つのみを置換, gsubは対象に含まれるすべての置換対象句を置換できる
  • 正規表現の中で変数を展開したい! => #{変数} で展開可能! 通常の文字列内展開と一緒だった

余談

  • 正規表現難しくてまだスキル獲得できていないから習得したい
  • AtCoderでなぜかACしない時は、pでなくputsを使うと通る ( pだと"hoge"の形で標準出力されてる)

基本的なことからわかってなかったんだな~としみじみしてしまうけど、少しずつ少しずつ..

参考にした記事

docs.ruby-lang.org

qiita.com

qiita.com