【Ruby3.x】StringScanner::check()メソッドの使い方
checkメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
checkメソッドは、RubyのStringScannerクラスに属するメソッドで、文字列のスキャン処理において、次に続くパターンを事前に確認するために使用されます。このメソッドは、StringScannerオブジェクトが現在指している位置から、引数として渡された正規表現(pattern)に文字列がマッチするかどうかを調べます。
もし指定されたパターンに文字列がマッチした場合、checkメソッドはそのマッチした文字列を返します。しかし、パターンにマッチする部分が見つからなかった場合は、nilを返します。
checkメソッドの最も重要な特徴は、正規表現によるパターンマッチングを行うにもかかわらず、StringScannerのスキャン位置(ポインタ)を一切移動させない点です。これは、scanメソッドがマッチした部分だけスキャン位置を進めるのとは対照的です。そのため、checkメソッドは、文字列を実際に消費することなく「次に何が来るのか」を事前に確認したい場合に非常に役立ちます。例えば、特定のキーワードが続くことを確認してから、その後の処理を分岐させたい場合などに利用できます。これにより、柔軟で安全な文字列の解析処理を実装することが可能になります。
構文(syntax)
1require 'strscan' 2 3scanner = StringScanner.new("Ruby programming language") 4p scanner.check(/Ruby/) 5p scanner.check(/Python/)
引数(parameters)
req
- req: String: マッチさせたい正規表現パターンを指定します。
戻り値(return)
String?
指定された正規表現にマッチする文字列を返します。マッチしない場合はnilを返します。