Rubyリファレンス: Home

index (String)

Edit   History

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

str.index(substr [, offset])

indexメソッドは、文字列の中に部分文字列substrが含まれていれば、その開始位置を整数で返します(0が1番目、1が2番目、...)。含まれていなければnilを返します。

第2引数にoffsetを指定すると、その位置から検索を開始します。負の値を指定すると末尾からの位置になります(-1が末尾から1番目、-2が末尾から2番目、...)。

s = "Supercalifragilisticexpialidocious"
puts s.index("li")
puts s.index("li", 10)
7
14

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

# encoding: utf-8
s = "あいうえお"
puts s.index("い")
1   (Ruby 1.8では 3)
str.index(regexp [, offset])

引数に正規表現regexpを指定すると、パターンとマッチする位置を返します。マッチしなければnilを返します。第2引数にoffsetを指定すると、その位置からパターンマッチを開始します。

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

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

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

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

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

関連項目