【发布时间】:2018-03-08 05:04:48
【问题描述】:
我有一个由多个字符串组成的数组,我在另一个数组中搜索,如下所示:
strings_array = ["string1", "string2", "string3"]
main_array = [ ## this is populated with string values outside of my script ## ]
main_array.each { |item|
if strings_array.any? { |x| main_array.include?(x) }
main_array.delete(item)
end
}
这是我的脚本实际执行的简化版本,但这就是要点。它按原样工作,但我想知道如何使strings_array 可以包含由正则表达式制成的字符串。所以假设我在main_array 中有一个名为“string-4385”的字符串,我想删除由string- + 一系列整数组成的 any 字符串(无需手动添加数字后缀)。我试过这个:
strings_array = ["string1", "string2", "string3", /string-\d+/.to_s]
这行不通,但这是我的目标逻辑。基本上,有没有办法在数组中包含这样的正则表达式字符串?还是有比 .any? 和 include? 组合更好的方法来完成这项工作(无需输入完整的字符串值)?
感谢您的帮助!
【问题讨论】:
-
您可以将
string_array中的每个项目都视为正则表达式,而不是main_array.include?(x),您可以检查main_array[x]、x是否是正则表达式,返回nil,在这种情况下没有匹配项。 -
标题中不需要“(ruby)”,因为你有一个 Ruby 标签。