Ruby Tips!

RubyのTipsを紹介します

正規表現にマッチした前後の文字列を得る

正規表現にマッチした前後の文字列を得るには2つ方法がある。

1つは組み込み変数を使う方法だ。Rubyでは正規表現によるマッチを行った後に、組み込み変数$`$'にそれぞれ正規表現にマッチした前の文字列と後ろの文字列が格納される。

2つめの方法はString#matchで得られるMatchDataオブジェクトのMatchData#pre_matchMatchData#post_matchを使う方法である。

以下はこれらの組み込み変数やメソッドを使って正規表現にマッチした前後の文字列を得る例である。

m = "foo bar buz".match(/bar/)
p m.pre_match #=> "foo "
p $` #=> "foo "
p m.post_match #=> " buz"
p $' #=> " buz"