1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
Returns the integer position of the first substring that matches the given argument +pattern+,
or +nil+ if none found.
When +pattern+ is a string,
returns the index of the first matching substring in +self+:
'foo'.index('f') # => 0
'foo'.index('o') # => 1
'foo'.index('oo') # => 1
'foo'.index('ooo') # => nil
'тест'.index('с') # => 2 # Characters, not bytes.
'こんにちは'.index('ち') # => 3
When +pattern+ is a Regexp, returns the index of the first match in +self+:
'foo'.index(/o./) # => 1
'foo'.index(/.o/) # => 0
When +offset+ is non-negative, begins the search at position +offset+;
the returned index is relative to the beginning of +self+:
'bar'.index('r', 0) # => 2
'bar'.index('r', 1) # => 2
'bar'.index('r', 2) # => 2
'bar'.index('r', 3) # => nil
'bar'.index(/[r-z]/, 0) # => 2
'тест'.index('с', 1) # => 2
'тест'.index('с', 2) # => 2
'тест'.index('с', 3) # => nil # Offset in characters, not bytes.
'こんにちは'.index('ち', 2) # => 3
With negative integer argument +offset+, selects the search position by counting backward
from the end of +self+:
'foo'.index('o', -1) # => 2
'foo'.index('o', -2) # => 1
'foo'.index('o', -3) # => 1
'foo'.index('o', -4) # => nil
'foo'.index(/o./, -2) # => 1
'foo'.index(/.o/, -2) # => 1
Related: see {Querying}[rdoc-ref:String@Querying].
|