我想找到在字符串中重复的单词的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的范围。
有人可以帮我解决这个问题