Rubyで正規表現にマッチするか比較して結果を取得してみましょう。
ポイントは以下の通りです。
- =~ で比較する場合、マッチした場合は0以上、マッチしない場合はnilが返ってくる
- !~ で比較する場合、マッチした場合はfalse、マッチしない場合はtrueが返ってくる
使用例は以下の通り。
num = /\d{3}-\d{4}/ p num.class # => Regexp p '123-1234' =~ num # => 0 p 'good for you' =~ num # => nil p '123-1234' !~ num # => false p 'good for you' !~ num # => true
これを活用してメソッドを作ってutility などのAPIとして使い回すと便利そうですね(*^^*)
例は以下の通りです。
def test(param, regexp) if param =~ regexp p '正規表現OK' else p '正規表現NG' end end test('123-1234', /\d{3}-\d{4}/) # => 正規表現OK test('hello', /\d{3}-\d{4}/) # => 正規表現NG
何か参考になると幸いです(*^^*)