我有一个正则表达式数组和一个字符串数组。数组的大小可以任意长(例如,100 或 1000)。没有字符串匹配两个不同的正则表达式。我不确定我将如何执行它,但让我们假设它就在那里。正则表达式以 开头pre
,后跟一个可选的冒号,然后是一个或多个空格,然后是一个特定的字符串,然后是一个空格,然后是一个整数。它将不区分大小写。
regexes = [/pre: my_string (\d+)/i, /pre: another (\d+)/i]
strings = ["comet", "eclipse", "sunshine", "starlight", "moonlight"]
对于每个字符串,我想检查它匹配哪个正则表达式并返回相应的匹配。上面的示例代码演示了我当前的方法。
strings.each {|string|
regexes.each {|regex|
if regex.match(string)
p regex.match(string)
break
end
}
}
似乎效率低下。有什么更有效的方法来实现这一点?