2016-09-28 169 views
0

我不在尋找如何找到另一個字符串內的字符串。我正在尋找一個詞。因此,解決辦法應通過這些測試:如何檢查句子是否包含特定單詞?

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 
+0

你到目前爲止嘗試過什麼嗎? – code11

+3

實際上,您正在字符串中查找字符串,但添加了a)不區分大小寫和b)沒有任何字母的條件。 –

回答

4

你需要一個正則表達式周圍要檢查存在該值的字邊界\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字邊界的更多信息。

+0

僅供參考:如果您只想匹配'Are'或'are'作爲整個單詞,但您不想檢測'ARe'或'ARE'或'aRe'等,請使用* alternation *:'let pattern =「\\ b(?:are | Are)\\ b」' –

相關問題