Pesquisando e substituindo texto

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.

Veja Também