Swift 3:向后搜索字符串

Pet*_*lie 3 string indexing reverse swift

我想向后搜索一个字符串。但是我发现的所有示例都不能在当前的Swift 3.0上运行。我的XCode 8上没有可用的“ .BackwardsSearch”选项。如何实现?例:

let rPos = rIndex(sourceString, searchString)
Run Code Online (Sandbox Code Playgroud)

要么

let rPos = sourceString.rindex(of: searchString)
Run Code Online (Sandbox Code Playgroud)

Dav*_*idA 5

XCode自动完成功能将建议这样做:

let rpos = sourceString.range(of:searchString, options:String.CompareOptions.backwards, range:nil, locale:nil)
Run Code Online (Sandbox Code Playgroud)

但是,范围和语言环境的默认值为nil,因此您可以忽略它们:

let rpos = sourceString.range(of:searchString, options:String.CompareOptions.backwards)
Run Code Online (Sandbox Code Playgroud)

并且options是这种类型,String.CompareOptions因此您只需要最后一部分:

let rpos = sourceString.range(of:searchString, options:.backwards)
Run Code Online (Sandbox Code Playgroud)

(感谢@MartinR指出缩短的版本)

  • 或者只是`sourceString.range(of: searchString, options: .backwards)` (2认同)