Ruby 3.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > MatchDataクラス > byteoffset
byteoffset(n) -> [Integer, Integer] | [nil, nil]
[permalink][rdoc]n 番目の部分文字列のバイト単位のオフセットの配列 [start, end] を返します。
n番目の部分文字列がマッチしていなければ [nil, nil] を返します。
[SEE_ALSO] MatchData#offset
byteoffset(name) -> [Integer, Integer] | [nil, nil]
[permalink][rdoc]name という名前付きグループに対応する部分文字列のバイト単位のオフセットの配列 [start, end] を返します。
nameの名前付きグループにマッチした部分文字列がなければ [nil, nil] を返します。
/(?<year>\d{4})年(?<month>\d{1,2})月(?:(?<day>\d{1,2})日)?/ =~ "2021年1月"
p $~.byteoffset('year') # => [0, 4]
p $~.byteoffset(:year) # => [0, 4]
p $~.byteoffset('month') # => [7, 8]
p $~.byteoffset(:month) # => [7, 8]
p $~.byteoffset('day') # => [nil, nil]
p $~.byteoffset('century') # => `offset': undefined group name reference: century (IndexError)
[SEE_ALSO] MatchData#offset