当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。