0Pricing
Ruby Academy · Aula

Substituição

gsub com padrões.

Substituição é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 3 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.

Substituindo texto com sub

String#sub substitui o first match de um padrão por uma cadeia de substituição. A cadeia original não é alterada; uma nova cadeia é retornada.

s = 'hello world'
puts(s.sub(/world/, 'Ruby'))
puts s

Substituindo tudo com gsub

gsub significa substituição global. Ele substitui todas as correspondências, não apenas a primeira.

puts('a-b-c-d'.gsub(/-/, '_'))
puts('one two two'.gsub(/two/, 'three'))

Padrões na substituição

O primeiro argumento de gsub pode ser uma expressão regular completa, permitindo corresponder a padrões flexíveis em vez de textos fixos.

puts('id42 id7 id100'.gsub(/\d+/, '#'))
puts('a1b2c3'.gsub(/[0-9]/, '*'))

Retorreferências na substituição

Na cadeia de substituição, você pode fazer referência aos grupos capturados com \1, \2 e assim por diante.

puts('2026-05-30'.gsub(/(\d{4})-(\d{2})-(\d{2})/, '\3/\2/\1'))

A retorreferência da correspondência completa

\0 ou \& faz referência ao texto correspondente completo, o que é útil para envolver correspondências.

puts('cat dog'.gsub(/\w+/, '[\0]'))

Forma em bloco de gsub

gsub aceita um bloco. Cada correspondência é passada ao bloco, e o valor retornado pelo bloco se torna a substituição. Isso permite calcular substituições dinamicamente.

result = 'a1 b2 c3'.gsub(/\d/) { |d| (d.to_i * 10).to_s }
puts result

Convertendo correspondências para maiúsculas

A forma em bloco facilita as transformações. Aqui, colocamos cada palavra em maiúsculas.

title = 'the great escape'.gsub(/\w+/) { |w| w.capitalize }
puts title

Substituição com tabela hash

Se você passar uma tabela hash como segundo argumento, cada correspondência será procurada como uma chave e substituída pelo valor correspondente. Isso é ótimo para mapas de tradução.

map = { 'cat' => 'kedi', 'dog' => 'kopek' }
puts('cat and dog'.gsub(/cat|dog/, map))

Versões que modificam no próprio texto

sub! e gsub! modificam a cadeia de caracteres no próprio texto e retornam nil quando nenhuma alteração é feita.

s = 'hello'
s.gsub!(/l/, 'L')
puts s
puts(s.gsub!(/z/, 'x').inspect)

Removendo texto

Para excluir correspondências, substitua-as por uma cadeia vazia.

puts('h e l l o'.gsub(/\s/, ''))
puts('price: $42'.gsub(/[^0-9]/, ''))

Retorreferências de grupos nomeados

Você pode nomear grupos com (?<name>...) e fazer referência a eles na substituição usando \k<name>.

out = 'John Smith'.gsub(/(?<first>\w+) (?<last>\w+)/, '\k<last>, \k<first>')
puts out

Verificação rápida

Qual é a diferença entre sub e gsub?

Recapitulação: substituição

Você aprendeu a transformar cadeias de caracteres com padrões:

  • sub substitui a primeira correspondência; gsub substitui todas
  • Retorreferências \1 e \& nas substituições
  • A forma em bloco calcula substituições dinamicamente
  • O argumento de tabela hash associa correspondências a valores
  • sub! / gsub! modificam o conteúdo no próprio texto
puts('foo bar baz'.gsub(/b\w+/) { |w| w.upcase })

Perguntas Frequentes

A aula “Substituição” é grátis?

Sim — o texto completo de “Substituição” é 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 “Substituição”?

gsub com padrões. 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 3 de 4.

Quanto tempo leva a aula “Substituição”?

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