【Ruby3.x】MatchData::size()メソッドの使い方
sizeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
sizeメソッドは、正規表現のマッチング結果を格納するMatchDataクラスのインスタンスに適用され、そのマッチ結果が保持する要素の総数を取得するメソッドです。MatchDataオブジェクトは、正規表現が対象文字列と一致した際に生成される特殊なオブジェクトで、マッチングによって得られた様々な情報を保持しています。このメソッドは、マッチした文字列全体(これを「全体マッチ」と呼びます)と、正規表現パターン内で括弧 () を用いて定義された全ての「キャプチャグループ」の数を合計した値を、整数として返します。
具体的には、MatchDataオブジェクトは通常、全体マッチをインデックス0の要素として、そしてそれに続くキャプチャグループをインデックス1、インデックス2…といった形で格納します。sizeメソッドは、これらの全体マッチと全てのキャプチャグループの総数を数え上げて提供します。これにより、正規表現のマッチング結果がいくつの部分に分解されたか、あるいはいくつのキャプチャグループが利用可能であるかを簡単に知ることができ、その後のデータ処理の計画に役立てることができます。例えば、特定の正規表現でデータを抽出する際に、意図した数のグループがマッチしているかを確認する用途に適しています。このsizeメソッドは、同じくMatchDataクラスに存在するlengthメソッドと全く同じ機能を提供しますので、どちらのメソッドを使用しても同様の結果を得られます。
構文(syntax)
1md = "hello world".match(/(hello)\s(world)/) 2md.size
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer または nil
マッチした部分の数を返します。マッチしなかった場合は nil を返します。