有没有办法检查字符串是否包含数组中的任何子字符串?
假设我有bad_words = ['broccoli', 'cabbage', 'kale']
和my_string = "My shopping list features pizza, gummy bears, kale, and vodka."
我想检查my_string
中是否有bad_words
项,而不使用循环/迭代器。这可能吗?
似乎人们使用Array#index
来解决这个问题,但是我不确定是怎么回事,因为在我的测试中,如果整个参数与整个参数匹配,它只会返回true
数组:bad_words.index "kale"
返回索引但bad_words.index "no kale"
返回nil
。所以它对子串没有好处。
答案 0 :(得分:1)
my_string =~ /\b#{Regexp.union(bad_words)}\b/
#=> 46
会做的。