我有一系列正则表达式:[/apple/i, /banana/i, /berry/i]
。
我还有一个字符串数组str_array
。我想迭代str_array
并向屏幕输出任何与正则表达式都不匹配的字符串。如果它匹配任何它应该被传递。
我怎么能这样做?
答案 0 :(得分:3)
str_array = %w[pineapple orange blueberry]
str_array.reject{|e| [/apple/i, /banana/i, /berry/i].any?{|re| re =~ e}}
#=> ["orange"]
答案 1 :(得分:1)
为避免对每个正则表达式进行多次匹配,您可以使用Regexp.union
:
regexes = [/apple/i, /banana/i, /berry/i]
union_regex = Regexp.union(regexes)
str_array.reject{|e| e =~ union_regex }