Ruby – 如何检查字符串是否包含数组中的所有单词?

我有一个字符串数组:
短语= [“感恩节快乐”,“吃很多食物”]

我有一个单词单词:words = [“eat”,“food”]

如果字符串包含第二个数组中的所有单词,我想返回第一个数组中的条目.

所以,它应该看起来像这样:
phrase.select {| x | x.include_all?(words)}

我应该创建include_all吗?函数迭代单词数组的每个成员并进行比较,还是有任何我缺少的内置方法

解决方法

你实际上非常接近解决方案.
phrases.select do |phrase|
  words.all?{ |word| phrase.include? word }
end

全部?方法在Enumerable上,如果块对集合中的每个项的计算结果为true,则返回true.

根据您对“包含”这个词的短语的定义,您可能想要定义自己的include_all?方法或String上的方法来确定匹配.包括方法区分大小写,不关心字边界.如果这些不是您的要求,您可以使用Regexp代替包含?或定义自己的方法来包装该逻辑.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...