ruby多字符串匹配

ruby多字符串匹配,ruby,Ruby,我已经写了几行这样的代码: if( (user_input.include?('string_a') || (user_input.include? ('string_b')) || (user_input.include?('string_c')) ) && user_input.include?('string_d_keyword')) .... end # if 是否有任何函数可以通过采用多个参数简化“多重或字符串匹配”并如

我已经写了几行这样的代码:

if( (user_input.include?('string_a') || 
    (user_input.include? ('string_b')) || 
    (user_input.include?('string_c')) ) 
    && 
    user_input.include?('string_d_keyword'))
    ....
end # if
是否有任何函数可以通过采用多个参数简化“多重或字符串匹配”并如下所示

if( (user_input.multi_include_or?('string_a','string_b','string_c')) 
    && (user_input.include?('string_d_keyword')))
.....
end # if
我希望在一行中完成所有这些,因此我省略了“case-when”选项

谢谢~

使用数组和


您可以使用
|
(或)进行正则表达式匹配:

如果字符串位于数组中,则可以使用
Regex.union
将其转换为相应的正则表达式:

if user_input.match? Regex.union(strings)
  …
end

否决票是怎么回事?这个解决方案有问题吗?谢谢你的回复。顺便说一句,我必须使用这种格式才能工作:user_input.match(/string_a | string_b/)thx再次~我看到我误读了问题后删除了我的答案。我认为
user\u input
是一个字符串数组。很明显,这是一根绳子。
if user_input.match? /string_a|string_b|string_c|string_d_keyword/
  …
end
if user_input.match? Regex.union(strings)
  …
end