0Pricing
Lua Academy · Aula

string.gmatch para tokenização

Percorra todas as correspondências de uma cadeia com string.gmatch.

string.gmatch para tokenização é uma aula grátis de Lua 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 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.gmatch?

string.gmatch(s, pattern) retorna um iterador que retorna sucessivamente todas as correspondências de pattern na cadeia de caracteres s.

Iterando sobre palavras

Divida uma cadeia de caracteres em palavras, encontrando sequências de caracteres que não sejam espaços.

local s = "the quick brown fox"
for word in s:gmatch("%S+") do
  print(word)
end

Coletando correspondências em uma tabela

Reúna todas as correspondências em uma tabela para processamento posterior.

local function split(s, pat)
  local parts = {}
  for token in s:gmatch(pat) do
    parts[#parts+1] = token
  end
  return parts
end
local words = split("one two three", "%S+")
print(#words)  -- 3

Extraindo números

Extraia todos os números inteiros de uma cadeia de caracteres com um padrão %d+.

local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
  print(tonumber(n))
end

Usando capturas em string.gmatch

Quando o padrão tem capturas, cada iteração retorna os grupos capturados em vez da correspondência inteira.

local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
  print(k, "->", v)
end

Tokenizador de CSV

Divida uma linha de CSV capturando tudo o que estiver entre vírgulas.

local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
  print(field)
end

Análise de pares chave-valor

Analise uma cadeia de cabeçalho no estilo HTTP e transforme-a em uma tabela de pares chave-valor.

local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
  parsed[k] = v:match("^%s*(.-)%s*$")
end

Contando ocorrências de um padrão

Conte quantas vezes um padrão aparece em uma cadeia de caracteres.

local function count(s, pat)
  local n = 0
  for _ in s:gmatch(pat) do n = n + 1 end
  return n
end
print(count("banana", "an"))  -- 2

Tokenizador de frases

Divida o texto em frases encontrando correspondências até os sinais de pontuação.

local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
  print(sent:match("^%s*(.-)%s*$"))
end

string.gmatch versus string.find em um laço

gmatch é a forma preferida de iterar sobre todas as correspondências. Usar string.find em um laço while é mais prolixo e propenso a erros.

ressalva sobre Unicode

Os padrões de Lua operam sobre bytes. Caracteres UTF-8 com vários bytes podem não corresponder corretamente a padrões de um único caractere. Para obter suporte completo a Unicode, use uma biblioteca UTF-8.

Pergunta sobre string.gmatch

Sobre o que for w in s:gmatch("%S+") do itera?

Recapitulação: string.gmatch

string.gmatch é o tokenizador padrão de Lua. Use-o para dividir cadeias de caracteres, extrair todos os números, analisar pares chave-valor e contar ocorrências de padrões em um laço de iterador organizado.

Perguntas Frequentes

A aula “string.gmatch para tokenização” é grátis?

Sim — o texto completo de “string.gmatch para tokenizaçã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 Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.

O que vou aprender em “string.gmatch para tokenização”?

Percorra todas as correspondências de uma cadeia com string.gmatch. 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 3 de 4.

Quanto tempo leva a aula “string.gmatch para tokenizaçã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 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