【Ruby3.x】String::=~()メソッドの使い方
=~メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
=~メソッドは、文字列が正規表現にマッチするかどうかを判定し、その結果を返すメソッドです。このメソッドは、呼び出し元の文字列が引数として指定された正規表現パターンにマッチするかどうかを調べます。
正規表現に一致する部分が見つかった場合、そのマッチした部分の最初の文字のインデックス(位置)を整数で返します。Rubyではインデックスが0から始まるため、文字列の先頭でマッチした場合は0が返されます。もし文字列が正規表現に全くマッチしなかった場合は、nilという特別なオブジェクトを返します。nilは「値が存在しない」ことを意味します。
このメソッドを実行すると、正規表現のマッチに関する情報がいくつかの特殊変数に自動的に格納されます。例えば、$~には直前のマッチ全体に関する情報が、$1, $2といった特殊変数には正規表現の括弧でグループ化(キャプチャ)された部分文字列がそれぞれ格納されます。これらの特殊変数を利用することで、単にマッチの有無だけでなく、どの部分がどのようにマッチしたのかという詳細な情報を後から取得し、プログラムで利用することができます。
=~メソッドは、文字列の中から特定のパターンを検索したり、文字列の内容が特定の形式に合致するかどうかをチェックしたりする際に、強力な手段として利用されます。
構文(syntax)
1"example string" =~ /string/
引数(parameters)
req
- pattern: 正規表現または文字列
- block: ブロック (省略可能)
戻り値(return)
Integer or nil
Stringクラスの=~メソッドは、文字列が正規表現にマッチするかどうかを判定し、マッチした場合はマッチした位置(オフセット)を整数で返します。マッチしなかった場合はnilを返します。