ウェブサービスを作っています。

MatchData#captures とかはじめて知った

すっかり 7 月ですね。


さて、正規表現のマッチ部分が $1, $2 とかに入るのは知っていたのですが、これだと最後のマッチ結果しか入らないし、たまに美しくない場合がありますね。


で、Rails のソースを読んでいたら、MatchData#captures なるものを発見しました。

match = /^(\d{3})-(\d{4})$/.match('123-4567')

ってときに、

$1  #=> "123"
$2  #=> "4567"

なのはいいんですが、

match.captures  #=> ["123", "4567"]

とかなってます。覚えときます。