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 の組み合わせにより、他のメソッドと同等の動作になります。
- scan_full(regexp, true, true) は StringScanner#scan と同等。
- scan_full(regexp, true, false) は StringScanner#skip と同等。
- scan_full(regexp, false, true) は StringScanner#check と同等。
- scan_full(regexp, false, false) は StringScanner#match? と同等。
- [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?