是否有更简洁或Rubyesque的写作方式:
if ( variable =~ /regex1/ || variable =~ /regex2/ || variable =~ /regex3/ ... )
end
即,我希望能有更短的东西,比如:
if ( variable =~ /regex1/,/regex2/,/regex3/ )
我意识到这不是有效的Ruby代码,但是找个人可能会知道一个更聪明的技巧。
答案 0 :(得分:6)
[/regex1/,/regex2/,/regex3/].any?{|r| r =~ variable}
答案 1 :(得分:5)
怎么样......
if ( variable =~ /regex1|regex2|regex3/ )
end
答案 2 :(得分:2)
您可以使用开关,或合并表达式(如果可能),或使用查找:
if ([/regex1/, /regex2/].find {|r| v =~ r}) ...
答案 3 :(得分:1)
variable =~ Regexp.union(/regex1/, /regex2/, /regex3/)
这假设你不能使用VoteyDisciple,它会尽可能地发挥作用。