在Ruby中的字符串中查找多个模式

时间:2018-11-20 12:58:11

标签: arrays ruby regex

我试图在数组中找到与多个正则表达式模式匹配的字符串。我想出了如何针对以下一种模式执行此操作:

spamWords = Regexp.new("Delighted")

spamCount1 = 0
spamArray.each do |word|
  if word =~ spamWords
    spamCount1 +=1
  end
end
p spamCount1

我遍历了spamWord个字符串数组,但是我想知道是否有更简单的方法来实现这一点。

1 个答案:

答案 0 :(得分:2)

您可以将多个模式组合为一个正则表达式,然后完全按照以下方式执行搜索:

spamWords = Regexp.new("Delighted|Saddened")

您还可以使用Regexp.union为您自动生成此正则表达式:

spamWords = Regexp.union("Delighted", "Saddened")