Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
StringScanner#peek
(::Integer) -> ::String
peek(length) → substring
ext/strscan/strscan.c
View on GitHub ↗
static VALUE
strscan_peek(VALUE self, VALUE vlen)
{
struct strscanner *p;
rb_len_t len;
GET_SCANNER(self, p);
len = NUM2LEN(vlen);
if (EOS_P(p))
return str_new(p, "", 0);
len = minl(len, S_RESTLEN(p));
return extract_beg_len(p, p->curr, len);
}
Returns the substring string[pos, length]; does not update match values or positions:
Example
scanner = StringScanner.new('foobarbaz') scanner.pos = 3 scanner.peek(3) # => "bar" scanner.terminate scanner.peek(3) # => ""
See also
#named_captures
#peek_byte
#matched_size
#pointer
also in
4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0