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

标签 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

最佳答案

您需要一个正则表达式,在您要检查其存在的值周围使用单词边界 \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/

相关文章:

ios - 使用通知/提醒的待办事项列表应用程序

string - Go 中别名类型之间的转换会创建副本吗?

c++ - 检查字符串在 C++ 中以什么数字结尾

ios - UIButton 函数添加点击样式

ios - Swift 自定义 UIView 没有响应点击

python - python 相同的字符串,但不同?

ios - 本地化字符串比较

swift - 如何在 swift 4 中获取子字符串?

ios - 如何触发紧急电话

python - Swift NSSocket 编程/python 教程修复