首页 > 解决方案 > 在 Ruby 中查找字符串中的多个模式

问题描述

我正在尝试在数组中查找与多个正则表达式模式匹配的字符串。我想出了如何为一种模式执行此操作,如下所示:

spamWords = Regexp.new("Delighted")

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

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

标签: arraysrubyregex

解决方案


您可以将多个模式合并到一个正则表达式中,然后像下面一样执行搜索:

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

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

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

推荐阅读