0Pricing
Lua Academy · Aula

string.gsub para transformações

Substitua padrões por cadeias, funções ou consultas em tabelas por meio de gsub.

string.gsub para transformações é uma aula grátis de Lua 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 Lua Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Lua Academy inclui 4 aulas no total.

O que é string.gsub?

string.gsub(s, pattern, repl, n) substitui ocorrências de pattern em s por repl. Retorna a nova cadeia de caracteres e o número de substituições.

Substituição simples de cadeias de caracteres

Substitua todas as ocorrências de uma substring literal.

local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count)  -- hello Lua Lua  2

Limitando substituições

Passe um quarto argumento para limitar o número de substituições.

local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1))  -- xxx bbb aaa  1

Substituição baseada em padrões

Substitua todos os dígitos por uma cadeia de caracteres fixa.

local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM"))  -- abc NUM def NUM  2

Substituição por função

Quando repl é uma função, ela é chamada com cada captura (ou com a correspondência inteira), e o valor retornado substitui a correspondência.

local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
  return tostring(tonumber(n) * 1.1)
end)
print(result)  -- price: 110.0, tax: 16.5

Substituição por tabela

Quando repl é uma tabela, cada correspondência (ou captura) é usada como chave; o valor da tabela substitui a correspondência.

local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result)  -- Hello, Alice! Welcome to Lua.

Removendo espaços em branco

Use gsub para remover os espaços em branco iniciais e finais de uma cadeia de caracteres.

local function trim(s)
  return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim("  hello  ") .. "]")  -- [hello]

Convertendo maiúsculas e minúsculas

Use gsub com uma função para converter cada letra em maiúscula ou minúscula.

local function toUpper(s)
  return s:gsub("%a", string.upper)
end
print(toUpper("hello world"))  -- HELLO WORLD

Escapando caracteres especiais

Escape todos os caracteres especiais dos padrões em uma cadeia de caracteres para que ela possa ser usada como um padrão literal.

local function escapePat(s)
  return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
end

Uso do valor de contagem retornado

O segundo valor retornado (a contagem de substituições) é útil para detectar se alguma substituição ocorreu.

local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") end

Padrão de mecanismo de modelos

Um mecanismo simples de modelos substitui os marcadores {{key}} por valores de uma tabela de dados.

local function render(tmpl, data)
  return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"}))  -- Hi Bob!

Pergunta sobre gsub

Quando repl em gsub é uma função, o que é passado para ela?

Recapitulação: string.gsub

string.gsub é um canivete suíço para transformação de cadeias de caracteres: permite substituir por cadeias de caracteres, funções (para cálculos dinâmicos) ou tabelas (para consultas em dicionários). Ele também retorna a contagem de substituições.

Perguntas Frequentes

A aula “string.gsub para transformações” é grátis?

Sim — o texto completo de “string.gsub para transformações” é 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 Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.

O que vou aprender em “string.gsub para transformações”?

Substitua padrões por cadeias, funções ou consultas em tabelas por meio de gsub. Você pratica Lua 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 Lua Academy?

Nenhuma experiência prévia é necessária. Lua 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 “string.gsub para transformações”?

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 Lua Academy?

Sim. Cada aula de Lua 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. Sintaxe de padrões do Lua
  2. Capturas e string.match
  3. string.gmatch para tokenização
  4. string.gsub para transformações
← Voltar para Lua Academy