Eliminando caracteres que coinciden con un patrón

Lua:
Eliminando caracteres que coinciden con un patrón

Cómo hacerlo:

local texto = "Hola mundo! 1234"
local patron = "%D" -- Patrón para eliminar todos los no dígitos

-- Usamos gsub para reemplazar el patrón con una cadena vacía
local resultado = texto:gsub(patron, "")

print(resultado) -- Output: 1234

En este ejemplo, %D busca todos los caracteres que no son dígitos. gsub los reemplaza por nada (los elimina).

local frase = "Lua es genial! 2023, sí."
local patron = "[%d%p]" -- Patrón para eliminar todos los dígitos y puntuaciones

local limpio = frase:gsub(patron, "")

print(limpio) -- Output: Lua es genial sí

Aquí, [%d%p] combina dígitos %d y puntuaciones %p, y los elimina de la cadena de texto.

Deep Dive

Lua utiliza patrones que se parecen a las expresiones regulares, pero son más simples. Desde su introducción, han sido una herramienta poderosa para el manejo de cadenas de texto. gsub es la función estrella para reemplazar texto: toma un patrón para buscar y una cadena de reemplazo (que puede ser vacía para eliminar).

Existen alternativas a usar patrones en Lua, como hacer ciclos a través de cada carácter o usar funciones de bibliotecas externas. Sin embargo, la simplicidad y eficiencia de gsub suelen ser insuperables.

Los patrones de Lua tienen sus propios matices, como los conjuntos de caracteres %a (letras), %s (espacios), etc., y su capacidad para modificar la cantidad de coincidencias con +, *, y -. Entender bien estos elementos es clave para manipular texto de manera efectiva.

See Also