【Ruby3.x】StringScanner::scan()メソッドの使い方
scanメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
scanメソッドは、StringScannerオブジェクトの現在のスキャン位置から指定された正規表現にマッチする文字列を検索し、その文字列を消費するメソッドです。このメソッドは、引数として正規表現パターンを受け取ります。現在のスキャン位置からその正規表現に一致する部分文字列を前方に向けて探索します。
もし正規表現に一致する文字列が見つかった場合、scanメソッドはその一致した文字列を戻り値として返します。同時に、StringScannerオブジェクト内部のスキャン位置を、一致した文字列の直後まで自動的に進めます。これにより、次回のスキャンは現在の位置から再開され、連続した文字列の解析が可能となります。一方で、現在のスキャン位置から正規表現に一致する部分文字列が見つからなかった場合、scanメソッドはnilを返します。この際、スキャン位置は変更されません。
scanメソッドは、ログファイルの解析や、プログラミング言語のソースコードのトークン化など、特定のパターンに合致する文字列を繰り返し抽出し、その後の処理を進めるような場面で非常に役立ちます。例えば、特定の区切り文字で区切られたデータや、繰り返し出現する特定のフォーマットの情報を順次処理する際に、このメソッドを使うことで効率的な文字列解析を実現できます。システムエンジニアが文字列解析処理を実装する際に、非常に強力なツールとなるでしょう。
構文(syntax)
1scanner = StringScanner.new("Hello Ruby!") 2matched_string = scanner.scan(/\w+/)
引数(parameters)
regexp
- regexp: マッチさせる正規表現
戻り値(return)
String または nil
正規表現にマッチした部分文字列を返します。マッチしなかった場合は nil を返します。