Wie man Named Capture in Ruby macht

Ich möchte die Aufnahme der Zeichenfolge benennen, die ich vom Scan erhalte. Wie es geht?

"555-333-7777".scan(/(\d{3})-(\d{3})-(\d{4})/).flatten #=> ["555", "333", "7777"]

Ist es möglich, es so zu machen

{:area => "555", :city => "333", :local => "7777" }

oder

[["555","area"], [...]]

Ich habe es versucht

"555-333-7777".scan(/((?<area>)\d{3})-(\d{3})-(\d{4})/).flatten

aber es kehrt zurück

[]

Antworten auf die Frage(3)

Ihre Antwort auf die Frage