【Ruby3.x】MatchData::values_at()メソッドの使い方
values_atメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
values_atメソッドは、正規表現のマッチ結果を格納するMatchDataオブジェクトにおいて、指定されたインデックスに対応するキャプチャグループの文字列を配列として抽出するメソッドです。
正規表現でパターンマッチングを行った際、丸括弧で囲まれた部分(キャプチャグループ)は、そのマッチした内容を個別に取得できます。このメソッドに引数としてインデックスを一つまたは複数渡すことで、それらのインデックスが指し示すキャプチャグループの文字列を取得します。
インデックス0は正規表現全体がマッチした文字列全体を表し、インデックス1以降は正規表現の記述順に、各キャプチャグループにマッチした部分文字列を表します。複数のインデックスをカンマで区切って指定すると、それらのインデックスに対応する文字列が、指定した順序でまとめて配列として返されます。
もし指定されたインデックスに対応するキャプチャグループが存在しない場合や、その部分がマッチしなかった場合は、結果の配列にはnilが格納されます。これにより、正規表現による複雑なマッチング結果から、必要な部分だけを効率的に選択し、取り出すことが可能になります。
構文(syntax)
1m = "Ruby version 3.2.2".match(/(\w+) version (\d+\.\d+\.\d+)/) 2p m.values_at(1, 2)
引数(parameters)
*rest
- *rest: 取得したいマッチデータのインデックスを可変長引数で指定します。指定されたインデックスに対応するマッチデータを配列で返します。
戻り値(return)
Array
指定されたインデックスに対応するマッチした文字列の配列を返します。