Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】StringScanner::matched_size()メソッドの使い方

matched_sizeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

matched_sizeメソッドは、RubyのStringScannerオブジェクトにおいて、直前のパターンマッチング操作でマッチした文字列のバイト数を取得するメソッドです。

このメソッドは、StringScannerクラスのscanメソッドやcheckメソッドなどを用いて文字列のスキャンを行った後、直前に成功したマッチングによって検出された部分文字列のバイト単位の長さを整数値として返します。例えば、特定の正規表現パターンに文字列の一部がマッチした場合、そのマッチした部分が何バイトであるかを正確に知ることができます。

もし直前のマッチング操作が失敗した場合、つまりパターンに一致する部分が見つからなかった場合や、まだ一度もStringScannerオブジェクトに対してマッチング操作を行っていない場合は、matched_sizeメソッドはnilを返します。このnilという値は、「マッチしなかった」という状態を示すため、プログラムで条件分岐を行う際に活用できます。

matched_sizeメソッドは、マッチした文字列そのものではなく、その長さ(バイト数)だけを効率的に知りたい場合に特に役立ちます。例えば、文字列から特定のデータ構造を抽出し、そのデータの正確なバイト長を把握して、後続の処理におけるデータの切り出し範囲を計算したり、ファイルポインタの移動量を決定したりする場面などで重宝されます。これにより、StringScannerを用いた文字列解析処理の柔軟性と精度を高めることができます。

構文(syntax)

1require 'strscan'
2
3s = StringScanner.new('This is a test')
4s.scan(/This/)
5s.matched_size

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer | nil

直近のマッチング操作で一致した文字列の長さを返します。マッチングが成功しなかった場合は nil を返します。

関連コンテンツ

関連プログラミング言語