Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method · added in Ruby 3.2

MatchData#byteoffset

(::MatchData::capture backref) -> ([ ::Integer, ::Integer ] | [ nil, nil ])
mtch.byteoffset(n) → array

Returns a two-element array containing the beginning and ending byte-based offsets of the nth match. n can be a string or symbol to reference a named capture.

Example
m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.byteoffset(0)      #=> [1, 7]
m.byteoffset(4)      #=> [6, 7]

m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
p m.byteoffset(:foo) #=> [0, 1]
p m.byteoffset(:bar) #=> [2, 3]

Ruby version changes

  1. 3.2
See also #byteend #captures #bytebegin #deconstruct also in 4.0 · 3.4 · 3.3 · 3.2