是否有写这个的更简洁或Rubyesque方式:更简洁的红宝石正则表达式
if (variable =~ /regex1/ || variable =~ /regex2/ || variable =~ /regex3/ ...)
end
也就是说,我希望的东西更短,像:
if (variable =~ /regex1/,/regex2/,/regex3/)
,我知道的是不有效的Ruby代码,但找出一个人可能会知道一个更聪明的伎俩。
是否有写这个的更简洁或Rubyesque方式:更简洁的红宝石正则表达式
if (variable =~ /regex1/ || variable =~ /regex2/ || variable =~ /regex3/ ...)
end
也就是说,我希望的东西更短,像:
if (variable =~ /regex1/,/regex2/,/regex3/)
,我知道的是不有效的Ruby代码,但找出一个人可能会知道一个更聪明的伎俩。
......怎么
if (variable =~ /regex1|regex2|regex3/)
end
[/regex1/,/regex2/,/regex3/].any?{|r| r =~ variable}
你可以使用一个开关,或合并表达式(如果可能的话),或使用一个发现:
if ([/regex1/, /regex2/].find {|r| v =~ r}) ...
variable =~ Regexp.union(/regex1/, /regex2/, /regex3/)
这是假设你不能使用VoteyDisciple,它会在最有可能的地方使用。