LoginSignup
4
4

More than 5 years have passed since last update.

Rubyで名前付きキャプチャを使ってみる

Last updated at Posted at 2015-11-04

Ruby初心者である私が、いろいろと奮闘している途中で学んだことその1。

正規表現で文字列を抜き出す際に名前付きキャプチャがすごい便利だった。
ここに詳しく書いている

例えば

test = '2015/01/01'

こんな日付があったとして、年月日を試しに正規表現で探してみる。

regex1 = /(\d{4})\/(\d{2})\/(\d{2})/
regex1 =~ test

puts $1 #=>2015
puts $2 #=>01
puts $3 #=>31

このように$1とか$2とかの特別な変数にマッチした順に値が入る。
名前付きキャプチャを使うことでより分かりやすくかけるようになる。

regex2 = /(?<year>\d{4})\/(?<month>(\d{2}))\/(?<date>(\d{2}))/
regex2 =~ test

puts Regexp.last_match[:year] rescue nil #=>2015
puts Regexp.last_match[:month] rescue nil #=>01
puts Regexp.last_match[:date] rescue nil #=>31
?<name>

とかで指定すると直後の括弧でくくった部分にマッチした場合、nameという変数名に自動的にセットされる。

具体的な変数名で処理が書けるので見やすくなった。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4