【Ruby3.x】Regexp::=~()メソッドの使い方
=~メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
=~メソッドは、正規表現オブジェクトが特定の文字列に対してパターンマッチングを実行するメソッドです。このメソッドは、レシーバーであるRegexpオブジェクトが、引数として与えられた文字列のどこかにマッチするかどうかを判定します。
マッチングが成功した場合、メソッドは文字列内で最初にマッチした部分の開始インデックスを整数で返します。例えば、文字列の0番目からマッチした場合は0を、5番目からマッチした場合は5を返します。マッチする部分が複数存在しても、最初に見つかった部分の開始インデックスのみを返します。
一方、マッチングが失敗した場合は、nilを返します。この特性から、if文などの条件式で利用すると、マッチの成否を簡潔に判定できます。
また、マッチングが成功すると、Rubyの特別なグローバル変数($1, $2, ..., $~など)に、マッチした情報やキャプチャされたグループの内容が自動的に設定されます。これにより、マッチした部分文字列を簡単に取り出して利用することが可能です。システム開発において、文字列のパターン認識や抽出処理に幅広く活用される非常に重要なメソッドです。
構文(syntax)
1/pattern/ =~ "string"
引数(parameters)
string
- string: マッチングを行う対象の文字列
戻り値(return)
Integer または nil
指定された文字列(レシーバー)の中から、正規表現にマッチする最初の位置を整数で返します。マッチしなかった場合は nil を返します。