如何检查句子是否包含特定单词?

时间:2016-09-28 13:13:36

标签: swift string

我不是在寻找如何在另一个字符串中找到字符串。我正在寻找一个词。所以解决方案应该通过这些测试:

let result: Bool = senx.contains(word: "are")

let sen1 = "We are good." //true
let sen2 = "We care about you." //false
let sen3 = "are"  //true
let sen4 = "are."  //true
let sen5 = "Are."  //true
let sen6 = "I have a flare." //false

1 个答案:

答案 0 :(得分:4)

您需要一个带有字边界\b的正则表达式,围绕您检查其存在的值:

let pattern = "(?i)\\bare\\b"
if string.rangeOfString(pattern, options: .RegularExpressionSearch) != nil ...

\bare\b匹配整个单词的任何are(不在前面或后面跟着字母/数字/下划线。(?i)标志确保不区分大小写的搜索。请参阅{{3 }}

请参阅the regex demo以获取用于检查模式是否与字符串匹配的代码。

有关\b字边界的详细信息,请参阅this SO answer