正規表現にマッチした前後の文字列を得る
正規表現にマッチした前後の文字列を得るには2つ方法がある。
1つは組み込み変数を使う方法だ。Rubyでは正規表現によるマッチを行った後に、組み込み変数$`
と$'
にそれぞれ正規表現にマッチした前の文字列と後ろの文字列が格納される。
2つめの方法はString#match
で得られるMatchData
オブジェクトのMatchData#pre_match
とMatchData#post_match
を使う方法である。
以下はこれらの組み込み変数やメソッドを使って正規表現にマッチした前後の文字列を得る例である。
m = "foo bar buz".match(/bar/) p m.pre_match #=> "foo " p $` #=> "foo " p m.post_match #=> " buz" p $' #=> " buz"