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.