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

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

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

作成日: 更新日:

基本的な使い方

pos=メソッドは、StringScannerオブジェクトが文字列をスキャンする際の現在位置(スキャンポインタ)を設定するメソッドです。

StringScannerは、文字列を効率的に走査し、正規表現などを用いたパターンマッチングを行うためのRuby標準ライブラリのクラスです。このクラスは、内部的に「スキャンポインタ」と呼ばれるインデックスを持っており、これは現在文字列内のどの位置からスキャンを開始するかを示します。通常、scanメソッドなどでパターンがマッチすると、このスキャンポインタは自動的にマッチした部分の終端へと進みます。

pos=メソッドを使うと、このスキャンポインタを開発者が明示的に指定した位置へ移動させることができます。引数には整数値を指定し、これは文字列の先頭を0とした場合のバイトオフセット、つまり開始位置からのバイト数を表します。例えば、s.pos = 5とすると、スキャンポインタは文字列の6文字目(0から数えて5番目の位置)に移動します。

設定できる位置は、0から対象文字列の長さまでの範囲です。もし、負の値や、対象文字列の長さを超える値を設定しようとすると、RangeErrorが発生し、プログラムはエラーとなります。このメソッドは、特定の場所からスキャンを再開したい場合や、文字列内の任意の位置からマッチングを始めたい場合に非常に役立ちます。

構文(syntax)

1require 'strscan'
2
3scanner = StringScanner.new("example string")
4scanner.pos = 7

引数(parameters)

req

  • req: StringScanner の現在位置を表す整数

戻り値(return)

Integer

指定した文字列の現在のスキャン位置を整数で返します。

関連コンテンツ

関連プログラミング言語