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

Posted

技术标签:

【中文标题】如何检查句子是不是包含特定单词?【英文标题】:How to check if a sentence contains a specific word?如何检查句子是否包含特定单词? 【发布时间】:2016-09-28 13:13:36 【问题描述】:

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

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

【问题讨论】:

到目前为止你有没有尝试过? 实际上,您是在字符串中寻找字符串,但附加了以下条件:a) 不区分大小写和 b) 周围没有任何字母。 【参考方案1】:

您需要一个带有单词边界的正则表达式 \b 围绕您要检查的值:

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

\bare\b 匹配作为整个单词的任何 are(前后不带字母/数字/下划线。(?i) 标志确保不区分大小写的搜索。请参阅 the regex demo。

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

有关\b 字边界作用的更多信息,请参阅regular-expressions.info Word boundaries

【讨论】:

仅供参考:如果您只想匹配 Areare 作为整个单词,但不想检测 AReAREaRe 等,请使用替代let pattern = "\\b(?:are|Are)\\b"

以上是关于如何检查句子是不是包含特定单词?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript/jQuery - 如何检查字符串是不是包含特定单词

如何正确检查字符串是不是不包含特定单词?

如何检查字符串是不是包含特定单词?

如何检查字符串是不是包含特定单词?

wordpress:如何检查 slug 是不是包含特定单词?

使用 Java Regex,如何检查字符串是不是包含集合中的任何单词?