0Pricing
Ruby Academy · Aula

Grupos nomeados e âncoras

Expressões regulares avançadas.

Grupos nomeados e âncoras é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

Por que usar grupos nomeados?

Capturas numeradas como m[1] ficam difíceis de ler quando um padrão cresce. Grupos nomeados dão a cada captura um rótulo significativo.

Sintaxe: (?<name>pattern).

m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])

Acessando capturas nomeadas

Acesse capturas nomeadas com uma chave de símbolo ou de cadeia de caracteres: m[:name]. O método named_captures retorna todas elas como uma tabela hash.

m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_captures

Grupos nomeados com =~

Quando um literal de expressão regular com grupos nomeados aparece à esquerda de =~, o Ruby cria automaticamente variáveis locais para cada nome.

if /(?<word>\w+)/ =~ 'hello'
  puts word
end

Âncoras: início e fim

Âncoras correspondem a posições, e não a caracteres:

  • ^ início de uma linha
  • $ fim de uma linha

Elas são essenciais para validar se uma entrada completa corresponde ao padrão.

puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))

Âncoras de cadeia de caracteres \A e \z

^ e $ correspondem aos limites de linha, o que importa em cadeias de caracteres com várias linhas. Para a cadeia de caracteres completa, prefira \A (início) e \z (fim absoluto).

text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))

Validando a entrada completa

Para verificar se uma cadeia de caracteres inteira corresponde a um formato, fixe as duas extremidades com âncoras. Isso rejeita cadeias com caracteres extras.

zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))

Limites de palavra

\b é um limite de palavra: a posição entre um caractere de palavra e um caractere que não é de palavra. Ele corresponde a palavras completas sem consumir caracteres.

puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)

Antevisão

Uma antevisão positiva (?=...) verifica o que vem a seguir sem incluir isso na correspondência. A antevisão negativa é (?!...).

puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))

Verificação retrospectiva

Uma verificação retrospectiva (?<=...) verifica o que precede a correspondência. A verificação retrospectiva negativa é (?<!...).

m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])

Grupos sem captura

Às vezes, você precisa de agrupamento para alternância ou quantificadores, mas não quer uma captura. Use (?:...) para criar um grupo sem captura.

m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.captures

Juntando tudo

Um validador realista usa âncoras, grupos nomeados e quantificadores em conjunto.

re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])

Verificação rápida

Quais âncoras você deve usar para garantir que uma cadeia de caracteres completa corresponda, ignorando quebras de linha?

Recapitulação: grupos nomeados e âncoras

Você dominou ferramentas avançadas de expressões regulares:

  • Grupos nomeados (?<name>...) e named_captures
  • Âncoras ^ $ \A \z \b
  • Antevisão (?=) / (?!) e verificação retrospectiva (?<=) / (?<!)
  • Grupos sem captura (?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])

Perguntas Frequentes

A aula “Grupos nomeados e âncoras” é grátis?

Sim — o texto completo de “Grupos nomeados e âncoras” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Grupos nomeados e âncoras”?

Expressões regulares avançadas. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Grupos nomeados e âncoras”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Literais de expressões regulares
  2. Correspondência e captura
  3. Substituição
  4. Grupos nomeados e âncoras
← Voltar para Ruby Academy