16

In PHP there's a useful strpos function that finds the position of first occurrence of a string. Is there a similar way to do this in Ruby?

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Mark
  • 67,098
  • 47
  • 117
  • 162

2 Answers2

30
str.index(pattern)

Use the index() method. This will return the index if found, otherwise return nil.

Usage:

ruby-1.9.2-p136 :036 > str = "Ruby is awesome"
 => "Ruby is awesome" 
ruby-1.9.2-p136 :037 > str.index("is awesome")
 => 5 
ruby-1.9.2-p136 :038 > str.index("testtest")
 => nil 
Mike Lewis
  • 63,433
  • 20
  • 141
  • 111
1

you can try

>> "abc".index("b")
=> 1

or

>> "acdfeb".match("f").begin(0)
=> 3
kurumi
  • 25,121
  • 5
  • 44
  • 52