如何检查字符串是否包含数组的任何值?

时间:2018-05-02 18:19:53

标签: ruby-on-rails arrays ruby string include

我的字符串是

str = "my string is this one"

我的数组是

arr = ["no", "nothing", "only", "is"]

所以,我的字符串在我的数组值中包含,我想得到结果true

我该怎么做?

我想使用include?符合

3 个答案:

答案 0 :(得分:1)

(str.downcase.split & arr.map(&:downcase)).any?
   #=> false

如果知道所有字母都是相同的情况。

(str.split & arr).any?
   #=> false

答案 1 :(得分:1)

检查整个单词何时包含区分大小写:

(str.split & arr).any?
#⇒ true

不区分大小写:

[str.split, arr].map { |a| a.map(&:downcase) }.reduce(&:&).any?
#⇒ true

要检查它是否包含任何arr

arr.any?(&str.method(:include?))
#⇒ true

答案 2 :(得分:0)

这使用正则表达式。好消息是它是为你生成的 - 没有学习的语法。其他好消息:它只遍历字符串一次。

re = Regexp.union(arr)  #your own regular expression without screws or bolts
p re.match?(str)  # => true