【Ruby3.x】MatchData::names()メソッドの使い方
namesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
namesメソッドは、正規表現によるマッチングの結果を保持するMatchDataオブジェクトから、その正規表現で定義された名前付きキャプチャの名前の一覧を取得するメソッドです。Rubyの正規表現は、文字列の中から特定のパターンを見つけ出す際に非常に強力な機能を提供します。このMatchDataクラスのオブジェクトは、正規表現が文字列と一致した際、その一致した部分やキャプチャされた情報など、詳細な結果をまとめて保持します。
正規表現には、(?<名前>パターン)のように、マッチした部分に特定の名前を付けて管理できる「名前付きキャプチャ」という機能があります。この機能を使うことで、数字の羅列が「年齢」なのか「郵便番号」なのかなど、キャプチャされた情報の意味を明確にできます。namesメソッドは、まさにこの名前付きキャプチャに付けられた名前を、文字列の配列として返します。これにより、プログラムが正規表現のマッチ結果から、どのような名前の情報が利用可能であるかを動的に確認することが可能になります。
もし、マッチングに使用された正規表現に名前付きキャプチャが一つも含まれていない場合、namesメソッドは空の配列を返します。このメソッドは、正規表現を使って複雑なデータを抽出する際に、キャプチャされた情報の種類や構造をプログラム側で把握し、より柔軟で堅牢な処理を実装するために役立ちます。
構文(syntax)
1m = /(?<protocol>https?):\/\/(?<domain>[^\/]+)/.match("https://www.example.com/path") 2puts m.names
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array<String>
MatchDataオブジェクトがマッチした部分のグループ名(キャプチャグループ名)を文字列の配列として返します。