ExpertiDict

Ruby · Intermediário · Inglês · Técnico

named captures

/neɪmd ˈkæptʃɚz/substantivo

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
end

Exemplos

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

Veja também

Todos os termos de Ruby