kind=defined
names=search_full
visibility=public

--- search_full(regexp, s, f) -> object
regexp で指定された正規表現とマッチするまで文字列をスキャンします。
マッチに成功すると、s と f の値によって以下のように動作します。

    * s が true ならばスキャンポインタを進めます。
    * s が false ならばスキャンポインタを進めません。
    * f が true ならばスキャン開始位置からマッチした部分の末尾までの部分文字列を返します。
    * f が false ならばスキャン開始位置からマッチした部分の末尾までの部分文字列の長さを返します。

マッチに失敗すると s や f に関係なく nil を返します。

このメソッドは s と f の組み合わせにより、
他のメソッドと同等の動作になります。

    * search_full(regexp, true, true) は [[m:StringScanner#scan_until]] と同等。
    * search_full(regexp, true, false) は [[m:StringScanner#skip_until]] と同等。
    * search_full(regexp, false, true) は [[m:StringScanner#check_until]] と同等。
    * search_full(regexp, false, false) は [[m:StringScanner#exist?]] と同等。

@param regexp マッチに用いる正規表現を指定します。

@param s true ならばスキャンポインタを進めます。
         false ならばスキャンポインタを進めません。

@param f true ならばマッチした部分文字列を返します。
         false ならばマッチした部分文字列の長さを返します。

使用例

  s = StringScanner.new('test string')   
  p s.search_full(/t/, true, true)       #=> "t"
  p s.search_full(/str/, false, true)    #=> "est str"
  p s.search_full(/string/, true, true)  #=> "est string"


@see [[m:StringScanner#scan_until]] [[m:StringScanner#skip_until]] [[m:StringScanner#check_until]] [[m:StringScanner#exist?]]

