web-dev-qa-db-ja.com

Rubyの文字列内の文字のインデックスを見つけるにはどうすればよいですか?

例えば、 str = 'abcdefg'。 Rubyを使用してこの文字列でcの場合、インデックスを見つけるにはどうすればよいですか?

62
Orcris
index(substring [, offset]) → fixnum or nil
index(regexp [, offset]) → fixnum or nil

Str内の指定された部分文字列またはパターン(regexp)の最初の出現のインデックスを返します。見つからない場合はnilを返します。 2番目のパラメーターが存在する場合、検索を開始する文字列内の位置を指定します。

"hello".index('e')             #=> 1
"hello".index('lo')            #=> 3
"hello".index('a')             #=> nil
"hello".index(?e)              #=> 1
"hello".index(/[aeiou]/, -3)   #=> 4

詳細については、 Rubyドキュメント をご覧ください。

98
kingasmk

これを使用できます

"abcdefg".index('c')   #=> 2
24
Mennan
str="abcdef"

str.index('c') #=> 2 #String matching approach
str=~/c/ #=> 2 #Regexp approach 
$~ #=> #<MatchData "c">

それが役に立てば幸い。 :)

3
kiddorails