instance method String#byteindex

byteindex(pattern, offset = 0) -> Integer | nil[permalink][rdoc][edit]

文字列の offset から右に向かって pattern を検索し、最初に見つかった部分文字列の左端のバイト単位のインデックスを返します。見つからなければ nil を返します。

引数 pattern は探索する部分文字列または正規表現で指定します。

offset が負の場合、文字列の末尾から数えた位置から探索します。

[PARAM] pattern:
探索する部分文字列または正規表現
[PARAM] offset:
探索を開始するバイト単位のオフセット
[EXCEPTION] IndexError:
オフセットが文字列の境界以外をさしているときに発生します。


'foo'.byteindex('f') # => 0
'foo'.byteindex('o') # => 1
'foo'.byteindex('oo') # => 1
'foo'.byteindex('ooo') # => nil

'foo'.byteindex(/f/) # => 0
'foo'.byteindex(/o/) # => 1
'foo'.byteindex(/oo/) # => 1
'foo'.byteindex(/ooo/) # => nil

'foo'.byteindex('o', 1) # => 1
'foo'.byteindex('o', 2) # => 2
'foo'.byteindex('o', 3) # => nil

'foo'.byteindex('o', -1) # => 2
'foo'.byteindex('o', -2) # => 1
'foo'.byteindex('o', -3) # => 1
'foo'.byteindex('o', -4) # => nil

'あいう'.byteindex('う') # => 6
'あいう'.byteindex('う', 3) # => 6
'あいう'.byteindex('う', -3) # => 6
'あいう'.byteindex('う', 1) # offset 1 does not land on character boundary (IndexError)

[SEE_ALSO] String#index, String#byterindex