我不是在寻找如何在另一个字符串中找到一个字符串。我在找一句话所以解决方案应该通过这些测试:
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
最佳答案
您需要一个正则表达式,在您要检查其存在的值周围使用单词边界 \b
:
let pattern = "(?i)\\bare\\b"
if string.rangeOfString(pattern, options: .RegularExpressionSearch) != nil ...
\bare\b
匹配任何 are
是一个完整的单词(前面和后面都没有字母/数字/下划线。(?i)
标志确保不区分大小写的搜索。参见 the regex demo 。
参见 this SO answer用于检查模式是否与字符串匹配的代码。
参见 regular-expressions.info Word boundaries有关 \b
字边界功能的更多信息。
关于swift - 如何检查句子是否包含特定单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748610/