【Ruby3.x】StringScanner::match?()メソッドの使い方
match?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
match?メソッドは、StringScannerオブジェクトのスキャンポインタの現在位置から、引数として与えられた正規表現パターンに文字列が一致するかどうかを判定するメソッドです。
このメソッドは、StringScannerオブジェクトが内部で保持するスキャンポインタを移動させることなく、現在の位置から正規表現との一致を試みます。もし正規表現に一致する部分が見つかった場合、true(真)を返します。一方、一致する部分が見つからなかった場合は、false(偽)を返します。
match?メソッドの主な用途は、次にスキャンポインタを動かす前に、現在の位置から特定のパターンが続くかどうかを確認することです。たとえば、scanメソッドやskipメソッドのように実際に文字列を読み進める前に、条件が満たされているかどうかの判断材料として利用できます。ポインタを移動させずにマッチング結果だけを得られるため、条件に応じた柔軟なスキャン処理を実装する際に役立ちます。
構文(syntax)
1require 'strscan' 2 3scanner = StringScanner.new("Ruby language") 4# 現在のポインタ位置から正規表現がマッチするかを判定し、ポインタは進めない。 5scanner.match?(/Ruby/) # => true
引数(parameters)
regexp, pre_match = false
- regexp: マッチさせる正規表現
- pre_match = false: マッチした文字列の前にマッチした部分を返すかどうかを指定する真偽値(デフォルトは false)
戻り値(return)
Boolean
指定された正規表現に文字列がマッチした場合、真 (true) を返します。マッチしなかった場合は偽 (false) を返します。