检测字符串是否具有来自可能性数组的子字符串

时间:2014-09-19 03:47:02

标签: ruby

有没有办法检查字符串是否包含数组中的任何子字符串?

假设我有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。所以它对子串没有好处。

1 个答案:

答案 0 :(得分:1)

my_string =~ /\b#{Regexp.union(bad_words)}\b/
#=> 46

会做的。