This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

rindex

        # String.rindex

(from ruby core)
---
    rindex(substring, offset = self.length) -> integer or nil
    rindex(regexp, offset = self.length) -> integer or nil

---

Returns the Integer index of the *last* occurrence of the given
`substring`, or `nil` if none found:

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

Returns the Integer index of the *last* match for the given Regexp
`regexp`, or `nil` if none found:

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

The *last* match means starting at the possible last position, not the
last of longest matches.

    'foo'.rindex(/o+/) # => 2
    $~ #=> #<MatchData "o">

To get the last longest match, needs to combine with negative
lookbehind.

    'foo'.rindex(/(?<!o)o+/) # => 1
    $~ #=> #<MatchData "oo">

Or String#index with negative lookforward.

    'foo'.index(/o+(?!.*o)/) # => 1
    $~ #=> #<MatchData "oo">

Integer argument `offset`, if given and non-negative, specifies the
maximum starting position in the
    string to _end_ the search:

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

If `offset` is a negative Integer, the maximum starting position in the
string to *end* the search is the sum of the string's length and
`offset`:

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

Related: String#index.



      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.