gpt4 book ai didi

Swift 3 字符串包含准确的句子/单词

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:11 24 4
gpt4 key购买 nike

我想知道一个简单的算法来确定一个字符串是否包含确切的句子或单词。

我不是在寻找:

string.contains(anotherString)

原因如下:

let string = "I know your name"
string.contains("you") // Will return true

在上面的示例中,它返回 true,因为如果在单词 “your” 中找到 “you”。我想要一个在那种情况下会返回 false 的方法。

例如:

let string = "I am learning Swift"

// Let's say we make a method using extension called contains(exact:)
string.contains(exact: "learn") // return false

contains(exact:) 方法将返回 false,因为 "learn" 不等于 "learning"

另一个例子:

let string = "Healthy low carb diets"
string.contains(exact: "low carb diet") // return false

在 Swift 3 中获得该结果的算法是什么?或者是否有预定义的方法?

最佳答案

一个解决方案是能够检查单词边界的正则表达式。

这是一个简单的字符串扩展,该模式搜索包含在单词边界 (\b) 中的查询字符串

extension String {
func contains(word : String) -> Bool
{
do {
let regex = try NSRegularExpression(pattern: "\\b\(word)\\b")
return regex.numberOfMatches(in: self, range: NSRange(word.startIndex..., in: word)) > 0
} catch {
return false
}
}
}

或者——感谢 Sulthan——更简单

extension String {
func contains(word : String) -> Bool
{
return self.range(of: "\\b\(word)\\b", options: .regularExpression) != nil
}
}

用法:

let string = "I know your name"
string.contains(word:"your") // true
string.contains(word:"you") // false

关于Swift 3 字符串包含准确的句子/单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com