Lua:
Pesquisando e substituindo texto
Como Fazer:
local texto_original = "Lua é uma linguagem incrível!"
local texto_substituido = texto_original:gsub("incrível", "poderosa")
print(texto_substituido) -- Saída: Lua é uma linguagem poderosa!
Além disso, podemos usar padrões mais complexos:
local dados = "Nome: João, Idade: 30, Nome: Maria, Idade: 25"
local idade_atualizada = dados:gsub("Idade: (%d+)", function(idade)
return "Idade: " .. (tonumber(idade) + 1)
end)
print(idade_atualizada)
-- Saída: Nome: João, Idade: 31, Nome: Maria, Idade: 26
Mergulho Profundo
Buscar e substituir texto é uma função comum na maioria das linguagens de programação, e Lua não é exceção. Com a função string.gsub
, Lua permite realizar substituições simples e também usar padrões complexos com expressões regulares, oferecendo grande flexibilidade.
Historicamente, tal funcionalidade é herança dos editores de texto e linguagens mais antigas, como SED em Unix, que lidavam fortemente com processamento de texto. Ao lidar com Lua, porém, é importante notar que usa-se um sistema de padrões (patterns) próprio, diferente das expressões regulares clássicas encontradas em outras linguagens.
Para tarefas mais complexas, pode-se recorrer a bibliotecas externas como o LPEG, que oferece um sistema de parsing de texto muito poderoso e flexível.
Detalhes de implementação:
gsub
retorna o novo texto e o número de substituições feitas.- Padrões em Lua são mais simples que expressões regulares, mas suficientes para muitas tarefas.