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