Rubyリファレンス: Home

=~ (String)

Edit   History

標準クラス・モジュール > String > =~

str =~ regexp

=~演算子(メソッド)は、文字列strに対して正規表現regexpとのパターンマッチを行います。マッチしたときは、マッチした部分の位置を整数で返します。マッチしなかったら、nilを返します。

右辺のregexpRegexp以外のオブジェクトを指定するとfalseが返ります。ただし、右辺に文字列を指定したときは、例外TypeErrorが発生します。

=~でマッチに成功したときは、組み込み変数$&$1$2などに値がセットされます。次の例では、文字列とパターン/<(.+)>/をマッチさせ、< >に囲われた語句を変数$1で取り出しています。

str = "hello <ruby> world"
if str =~ /<(\w+)>/
  puts $1
end
ruby

!~演算子は、マッチしなかったときにtrueを、マッチしたときにfalseを返します。!~Stringクラスで定義されているメソッドではありませんが、Rubyでは=~が定義されていれば自動的に!~が使えます。

str = "hello <ruby> world"
if str !~ /\d/
  puts "digit not found"
end
digit not found

関連項目