當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby String.rindex用法及代碼示例


本文簡要介紹ruby語言中 String.rindex 的用法。

用法

rindex(substring, offset = self.length) → integer or nil
rindex(regexp, offset = self.length) → integer or nil

返回給定 substringlast 出現的整數索引,如果沒有找到,則返回 nil

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

返回給定正則表達式 regexplast 匹配的整數索引,如果沒有找到,則返回 nil

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

last 匹配意味著從可能的最後一個位置開始,而不是最長匹配的最後一個。

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

要獲得最後一個最長的匹配,需要結合否定的lookbehind。

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

String#index 帶有負前瞻。

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

整數參數 offset ,如果給定且非負數,則指定

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

如果 offset 是負整數,則搜索到 end 的字符串中的最大起始位置是字符串長度和 offset 的總和:

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

相關: String#index

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 String.rindex。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。