Ruby 3.4 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > MatchDataクラス > bytebegin
bytebegin(n) -> Integer | nil
[permalink][rdoc]bytebegin(name) -> Integer | nil
n 番目の部分文字列先頭のバイトオフセットを返します。
0 はマッチ全体を意味します。 n 番目の部分文字列がマッチしていなければ nilを返します。
引数に文字列またはシンボルを渡した場合は、対応する名前付きキャプチャの先頭のバイトオフセットを返します。
例
/(c).*(いう).*(e.*)/ =~ 'abcあいうdef'
p $~ # => #<MatchData "cあいうdef" 1:"c" 2:"いう" 3:"ef">
p $~.bytebegin(0) # => 2
p $~.bytebegin(1) # => 2
p $~.bytebegin(2) # => 6
p $~.bytebegin(3) # => 13
p $~.bytebegin(4) # => index 4 out of matches (IndexError)
シンボルを指定する例
/(?<key>\S+):\s*(?<value>\S+)/ =~ "name: ruby"
$~ # => #<MatchData "name: ruby" key:"name" value:"ruby">
$~.bytebegin(:key) # => 0
$~.bytebegin(:value) # => 6
$~.bytebegin(:foo) # => undefined group name reference: foo (IndexError)