instance method Regexp#=~

self =~ string -> Integer | nil[permalink][rdoc]

文字列 string との正規表現マッチを行います。マッチした場合、マッチした位置のインデックスを返します(先頭は0)。マッチしなかった場合、あるいは string が nil の場合には nil を返します。

p /foo/ =~ "foo"  # => 0
p /foo/ =~ "afoo" # => 1
p /foo/ =~ "bar"  # => nil

組み込み変数 $~ もしくは Regexp.last_match にマッチに関する情報 MatchData が設定されます。

文字列のかわりにSymbolをマッチさせることができます。

[PARAM] string:
マッチ対象文字列
[EXCEPTION] TypeError:
string が nil でも String オブジェクトでも Symbol でもない場合発生します。
p /foo/ =~ "foo"        # => 0
p Regexp.last_match(0)  # => "foo"
p /foo/ =~ "afoo"       # => 1
p $~[0]                 # => "foo"
p /foo/ =~ "bar"        # => nil

unless /foo/ === "bar"
  puts "not match " # => not match
end

str = []
begin
  /ugo/ =~ str
rescue TypeError
  printf "! %s\t%s\n", $!, $@ # => ! can't convert Array into String       r5.rb:15
end