instance method StringScanner#scan_full

scan_full(regexp, s, f) -> object[permalink][rdoc][edit]

スキャンポインタの位置から regexp と文字列のマッチを試します。

マッチに成功すると、s と f の値によって以下のように動作します。

  • s が true ならばスキャンポインタを進めます。
  • s が false ならばスキャンポインタを進めません。
  • f が true ならばマッチした部分文字列を返します。
  • f が false ならばマッチした部分文字列の長さを返します。

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

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

[PARAM] regexp:
マッチに用いる正規表現を指定します。
[PARAM] s:
true ならばスキャンポインタを進めます。 false ならばスキャンポインタを進めません。
[PARAM] f:
true ならばマッチした部分文字列を返します。 false ならばマッチした部分文字列の長さを返します。


require 'strscan'

s = StringScanner.new('test string')
p s.scan_full(/\w+/, true, true)     #=> "test"
p s.scan_full(/\s+/, false, true)    #=> " "
p s.scan_full(/\s+/, true, false)    #=> 1
p s.scan_full(/\w+/, false, false)   #=> 6
p s.scan_full(/\w+/, true, true)     #=> "string"

[SEE_ALSO] StringScanner#scan StringScanner#skip StringScanner#check StringScanner#match?