Ruby 正規表現にマッチしたかどうかの真偽を返す

Rubyで正規表現にマッチしているかどうかを

puts 'マッチした' if /ab/ =~ 'abc'

というふうに書いていたら、先輩プログラマーのリファクタリングにより

puts 'マッチした' if /ab/ === 'abc'

となった。
なにこれぇー、と思ってRegexpクラスの === メソッドを調べてみると

参照 : http://doc.ruby-lang.org/ja/1.9.2/class/Regexp.html

self === string -> bool
文字列 string との正規表現マッチを行います。 マッチした場合は真を返します。

string が文字列でもシンボルでもない場合には false を返します。

ということらしい。
真偽を返してくれるということは、純粋な比較なら===を使うほうがイカしてるじゃないか!

タイトルとURLをコピーしました