【Ruby3.x】StringScanner::captures()メソッドの使い方
capturesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
capturesメソッドは、RubyのStringScannerクラスに属し、直前の正規表現マッチングでキャプチャされた部分文字列の配列を取得するために使用されるメソッドです。
StringScannerは文字列をスキャンし、正規表現パターンに一致する部分を探す際に使用されます。このcapturesメソッドは、正規表現の中で括弧「()」を使って指定された「キャプチャグループ」に対応する部分文字列を、そのグループが出現する順序で配列として返します。例えば、"価格: 123円"から数値部分を抽出するため正規表現「価格: (\d+)円」でマッチした場合、capturesメソッドは["123"]という配列を返します。
マッチングは成功したが特定のキャプチャグループがマッチしなかった場合、そのグループに対応する要素はnilになります。また、直前に正規表現によるマッチングが行われていない、またはマッチング自体が失敗した場合には、このメソッドはnilを返します。この機能により、複雑なテキストデータから必要な特定の情報を効率的に抽出し、プログラムで活用できます。
構文(syntax)
1require 'strscan' 2 3s = StringScanner.new("apple banana cherry") 4s.scan(/(\w+) (\w+)/) 5s.captures
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array | nil
マッチしたキャプチャグループの配列、またはマッチしなかった場合はnilを返します。