如何找到字符串中重复的确切单词的范围(区分大小写)

时间:2018-12-08 18:22:54

标签: swift string range

我想找到在字符串中重复的单词的nsrange,搜索应该区分大小写。

例如:

主要字符串为let str =“嗨,萨瑟什,你好吗,萨洛什(Hellow satheesh1),你找到萨瑟什的答案了吗?”。

现在我想查找单词“ satheesh”的范围。预期的nsrange计数应为2。即[nsrange(location:3,lenght:8),[nsrange(other word satheesh)]不应使用satheesh1的范围,因为satheesh!= satheesh1。

我正在使用以下代码

extension String {
func ranges(of substring: String, options: CompareOptions = [], locale: Locale? = nil) -> [Range<Index>] {
    var ranges: [Range<Index>] = []
    while let range = self.range(of: substring, options: options, range: (ranges.last?.upperBound ?? self.startIndex)..<self.endIndex, locale: locale) {
        ranges.append(range)
    }
    return ranges
}
}

但是此代码的问题是在考虑satheesh == satheesh1的范围时,所以我正在获取satheesh和satheesh的范围。

有人可以帮我解决这个问题

0 个答案:

没有答案