Ruby · Intermediário · Inglês · Técnico
named captures
Grupos de captura de uma regex com nome, escritos como (?<ano>...). Permitem ler o trecho por nome em vez de posição, via MatchData ou variáveis locais.
Onde usar
Aparece ao extrair partes de datas, logs e URLs. Código com nomes é bem mais legível do que match[1] e match[2].
Em código
data = "2025-03-14"
m = data.match(/(?<ano>\d+)-(?<mes>\d+)/)
puts m[:ano] # => 2025
puts m["mes"] # => 03
if /(?<dia>\d+)$/ =~ data
puts dia # => 14
endExemplos
I used named captures to pull the year from the log.
Usei named captures para tirar o ano do log.
Named captures read better than numbered groups.
Named captures são mais legíveis do que grupos numerados.
Cuidado
A criação automática de variáveis locais só acontece com literal de regex à esquerda do =~, nunca com a regex guardada em variável.
Sinônimos
grupos nomeados