一致がない場合は空の配列を返す String.scan 関数を使用する必要があります。
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
これを書くためのよりエレガントな方法はありますか?割り当てと空のチェックを同時に実行できるようにするか、コードを美しくする他の方法はありますか?
ありがとう