【Ruby3.x】MatchData::to_a()メソッドの使い方
to_aメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
to_aメソッドは、正規表現による文字列のマッチング結果を保持するMatchDataオブジェクトの内容を、配列として取得するメソッドです。Ruby 3の組み込み機能として、MatchDataクラスに属しています。
正規表現を使って文字列を検索し、マッチした場合に生成されるMatchDataオブジェクトは、マッチした全体の文字列だけでなく、正規表現内で括弧(())を使って定義された各「キャプチャグループ」にマッチした部分文字列も内部的に保持しています。このto_aメソッドを呼び出すことで、それらのマッチ情報をまとめて一つの配列として取り出すことができます。
具体的には、返される配列の最初の要素(インデックス0)には、正規表現全体にマッチした文字列全体が格納されます。そして、配列の2番目以降の要素(インデックス1、2、…)には、正規表現で定義された各キャプチャグループにマッチした部分文字列が順番に格納されます。もし、特定のキャプチャグループが文字列にマッチしなかった場合は、その位置にはnilが格納されます。
このメソッドを使用することで、正規表現のマッチングで得られた複数の情報を一括で、かつ順序だった配列の形式で簡単に扱えるようになります。特に、複数のキャプチャグループから得られた情報をまとめて処理したい場合に非常に便利です。
構文(syntax)
1m = "foo bar baz".match(/(\w+) (\w+) (\w+)/) 2puts m.to_a
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array
to_a メソッドは、マッチした部分文字列を配列として返します。