我必须使用 String.scan 函数,如果没有匹配则返回空数组。
我想用扫描函数分配一个变量并检查它是否匹配,但不幸的是我不能这样做,因为它不会在不匹配时返回 nil 或 false 。
我想这样做(1行):
if ip = str.scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
...
#use ip
end
但因为它不会在没有匹配的情况下返回 nil 我必须这样做:
ip_match = str.scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
unless ip_match.empty?
#use ip
end
有没有更优雅的方式来写这个——能够同时进行赋值和空检查,或者其他方式来美化代码?
谢谢