macos - 搜索字符串以查找单词的重复实例

标签 macos swift

我有一个字符串,我想在该字符串中找到每个用户选择的单词的位置。例如,如果用户选择“我的”,我想每次在字符串中找到“我的”。目前我正在使用:

var range = stringContent?.rangeOfString("my")
println(range?.location)

不幸的是,这只给出了字符串中第一个“my”的位置。我如何找到所有“我的”的位置?谷歌并没有太大帮助——所有的建议和例子都找到了这个词的第一个实例。我想要所有实例。

感谢您的帮助!

最佳答案

这基本上是@Fogmeister 建议的,但是使用了 NSString 的内置方法 enumerateSubstringsInRange(_:options:usingBlock:) .它将为您提供“我的”出现的一系列范围。

var rangesOfMatches = [NSRange]()

someString.enumerateSubstringsInRange(NSMakeRange(0, someString.length), options: .ByWords) { (substring, substringRange, _, _) in
    if substring == "my" {
        rangesOfMatches.append(substringRange)
    }
}

关于macos - 搜索字符串以查找单词的重复实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28685420/

相关文章:

ios - 为什么我不能在没有方法调用的情况下用为泛型指定的类型替换泛型?

java - 通过 OS X App Bundle 执行 Oracle JDK 7u10 — 日志在哪里?

objective-c - Cocoa应用程序,如何在应用程序未运行时显示徽章标签?

swift - enumerateChildNodes 是否对孙子节点进行排序?

ios - 声明 'subscribe' 不能覆盖多个父类(super class)声明 (ReSwift)

iOS-charts 带有负值的条形图

swift - 在 NSTask 中使用打开命令

python - 如何在没有系统特定的情况下获得 pathlib 的 unix 路径处理好东西,例如 Path.resolve() changes/tmp to/private/tmp

java - 单元测试中unicode字符串文字的问题

macos - 错误 : Sparse checkout leaves no entry on working directory