Rubyリファレンス: Home

rindex (String)

Edit   History

標準クラス・モジュール > String > rindex

str.rindex(substr [, offset])

rindexメソッドは、文字列の末尾から部分文字列substrを探し、その開始位置を整数で返します。含まれていなければnilを返します。戻り値は末尾からの位置ではなく先頭からの位置です(0が1番目、1が2番目、...)。

第2引数にoffsetを指定すると、その位置から先頭に向かって検索します。offsetは末尾からの位置ではなく先頭からの位置です。負の値を指定すると末尾からの位置になります(-1が末尾から1番目、-2が末尾から2番目、...)。

s = "Supercalifragilisticexpialidocious"
puts s.rindex("li")
puts s.rindex("li", -10)
25
14

Ruby 1.9 メソッドの戻り値やoffsetの値は、Ruby 1.8ではバイト単位での位置、Ruby 1.9では文字単位での位置になります。

# encoding: utf-8
s = "こんばんは"
puts s.rindex("ん")
3   (Ruby 1.8では 9)
str.rindex(regexp [, offset])

引数に正規表現regexpを指定すると、文字列の末尾からパターンとマッチする部分を探し、その位置を返します。マッチしなければnilを返します。第2引数にoffsetを指定すると、その位置から先頭に向かって探します。

戻り値やoffsetは、Ruby 1.8ではバイト単位の位置、Ruby 1.9では文字単位の位置です。

s = "hello, world"
puts s.rindex(/\W/)
6
str.rindex(fixnum [, offset])

Ruby 1.8では、引数に整数を指定すると、そのバイトがある位置を返します。なければnilを返します。第2引数にoffsetを指定すると、その位置から検索を開始します。

s = "hello"
puts s.rindex(0x6c)   # lのコード
3

Ruby 1.9 Ruby 1.9では第1引数に整数を指定できなくなりました。整数を指定すると例外TypeErrorが発生します。

関連項目