Menu
Coddy logo textTech

Introducción a patrones de cadenas

Parte de la sección Lógica y flujo de control del Journey de Lua de Coddy — lección 36 de 54.

Cuando usaste string.gsub() en la lección anterior, buscaste texto exacto como espacios o palabras específicas. Pero, ¿qué pasa si necesitas encontrar "cualquier dígito" o "cualquier letra" sin conocer el carácter exacto? Aquí es donde entran en juego los patrones de cadenas.

Los patrones de cadenas en Lua son una forma de describir qué tipo de texto estás buscando, en lugar del texto exacto en sí. Son más simples que las expresiones regulares, pero lo suficientemente potentes para la mayoría de las tareas de procesamiento de texto.

Lua proporciona códigos especiales llamados clases de caracteres que coinciden con categorías de caracteres. Aquí están los más comunes:

%d  -- coincide con cualquier dígito (0-9)
%a  -- coincide con cualquier letra (a-z, A-Z)
%s  -- coincide con cualquier espacio en blanco (espacio, tabulación, nueva línea)
%w  -- coincide con cualquier carácter alfanumérico (letras y dígitos)
%p  -- coincide con cualquier carácter de puntuación

Aquí tienes cómo podrías usar estos patrones con string.find() para localizar el primer dígito en una cadena:

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Resultado: 6

También puedes usar versiones en mayúsculas de estas clases para que coincidan con lo opuesto. Por ejemplo, %D coincide con cualquier carácter que no sea un dígito, y %A coincide con cualquier carácter que no sea una letra.

challenge icon

Desafío

Fácil

Escribe una función containsDigit que recibe text y devuelve si el texto contiene al menos un dígito.

Usa string.find() con la clase de caracteres %d para comprobar si existe algún dígito en la cadena.

Parámetros:

  • text (string): El texto en el que buscar dígitos

Devuelve: true si el texto contiene al menos un dígito, false en caso contrario (boolean)

Pruébalo tú mismo

function containsDigit(text)
    -- Escribe el código aquí
end
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo de control