str = 'foo 123 456 789 bar'
re = /^foo +(\d+) +(\d+) +(\d+) +bar$/
p re.match(str).to_a
#=> ["foo 123 456 789 bar", "123", "456", "789"]
_, a, b, c = re.match(str).to_a
p [a,b,c]
#=> ["123", "456", "789"]
Обратите внимание, что Regex#match
вернет nil
, если совпадений не найдено, но nil.to_a
вернет пустой массив, поэтому приведенное выше безопасно.