Rubyで正規表現を使い文字列を操作する(gsub・slice・match)

Ruby正規表現を使えるようになると、文字列を簡単に操作できるようになります。文字列の置換や抽出はプログラミングでよく出てくる処理なのでしっかり押さえておきたいですね。

文字列の置換

例えば、次の文字列をカンマ区切りに変更してみましょう。

str = '100 200 300'

こちらの文字列を100,200,300というようにカンマ区切りにするときにはgsubメソッドが使えます。
さっそく使ってみましょう。

str = '100 200 300'
str.gsub(/ /, ",")
# => "100,200,300"

gsubメソッドは文字列の中で正規表現のパターンにマッチした部分をすべて指定の文字列に変換してくれるメソッドです。
引数は下記の通りです。

str.gsub(pattern, replacement)

数字の抽出

次は文字列中に存在する数字を抽出し、Int型に変換してみます。

str = '振込手数料は税込み432円です。'

ここでもgsubが使えます。

str = '振込手数料は税込み432円です。'
str.gsub(/[^\d]/, "").to_i
# => 432

簡単でとても便利ですね。

文字列の抽出

次は文字列の中から特定の文字列を抽出してみます。

str = '今日の天気は雨です。'

この文字列から 雨 に当たる部分を抽出します。また「雨」の部分が「晴れ」や「曇り」でも抽出できるようにしてみます。

str = '今日の天気は雨です。'
str.slice(/天気は(.+)です/, 1)
# => "雨"

sliceメソッドを使ってみました。matchメソッド使う場合は下記のようになります。

str.match(/今日の天気は(.+)です。/)[1]

以上になります。
正規表現は一見するとわかりにくいですが、覚えると便利なのでこれからも継続的に学習していければと思います。