Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】MatchData::begin()メソッドの使い方

beginメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

beginメソッドは、正規表現のマッチ結果を保持するMatchDataオブジェクトから、特定のキャプチャグループが元の文字列中のどこから始まるかを示すインデックスを取得するメソッドです。

このメソッドは、Rubyにおいて正規表現のマッチング操作が成功したときに生成されるMatchDataクラスのインスタンスに対して呼び出されます。MatchDataオブジェクトは、正規表現によってマッチした文字列全体の情報や、正規表現内の括弧()で囲まれた部分(キャプチャグループ)にマッチした部分文字列に関する詳細な情報(マッチした文字列そのもの、その文字列が元の文字列中のどこから始まるか、どこで終わるかなど)をカプセル化しています。

beginメソッドに整数nthを引数として渡すと、そのnth番目にキャプチャされた部分文字列が、元の文字列の先頭から数えて何文字目(0を基点とするインデックス)から始まるかを示す数値が返されます。例えば、begin(1)は1番目のキャプチャグループの開始位置を返し、begin(2)は2番目のキャプチャグループの開始位置を返します。

引数nthを省略した場合や、nthに0を指定した場合は、正規表現全体がマッチした部分文字列の開始位置が返されます。もし指定したnth番目のキャプチャグループが存在しない場合や、そのグループがマッチしなかった場合には、nilが返される点に留意が必要です。このメソッドを利用することで、正規表現によるパターンマッチング結果の具体的な位置情報を正確に把握し、その後の文字列操作や解析に活用することができます。

構文(syntax)

1match_data = "apple banana cherry".match(/(apple) (banana)/)
2
3puts match_data.begin(0)
4puts match_data.begin(1)
5puts match_data.begin(2)

引数(parameters)

nth

  • nth: 検索されたマッチの開始位置を指定する整数

戻り値(return)

Integer

マッチした部分の開始位置を表す整数を返します。

関連コンテンツ