Menu
Coddy logo textTech

string.match()

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 38 di 54.

Mentre string.find() ti dice dove compare un pattern in una stringa, a volte devi estrarre il testo effettivo che corrisponde. È qui che entra in gioco string.match(), che diventa ancora più potente quando viene combinato con i gruppi di cattura.

I gruppi di cattura ti permettono di contrassegnare parti specifiche di un pattern che vuoi estrarre. Crei un gruppo di cattura racchiudendo una parte del pattern tra parentesi (). Quando string.match() trova una corrispondenza, restituisce il testo catturato invece della sola posizione.

Ecco un semplice esempio di estrazione di un numero da una stringa:

local text = "Player score: 100"
local number = string.match(text, "%d+")
print(number)  -- Output: 100

Lo schema %d+ significa "una o più cifre". Il + è un modificatore che corrisponde a uno o più elementi della classe di caratteri precedente, consentendoti di acquisire numeri composti da più cifre.

Puoi usare i gruppi di cattura per estrarre parti specifiche di un pattern più complesso:

local message = "User: Alice sent a message"
local username = string.match(message, "User: (%a+)")
print(username)  -- Output: Alice

Qui, le parentesi intorno a %a+ dicono a Lua di catturare la sequenza di lettere che segue "User: ". Il resto del pattern aiuta a individuare la posizione corretta, ma viene restituita solo la parte catturata.

Se il tuo pattern ha più acquisizioni, string.match() le restituisce tutte come valori separati, che puoi assegnare a più variabili contemporaneamente.

challenge icon

Sfida

Facile

Scrivi una funzione extractPrice che accetta text e restituisce il valore del prezzo trovato nella stringa.

Usa string.match() con un pattern di cattura per estrarre il prezzo numerico che compare dopo il simbolo del dollaro. Il pattern dovrebbe catturare una o più cifre usando %d+.

Parametri:

  • text (stringa): una stringa contenente un prezzo nel formato "Price: $XX"

Restituisce: il prezzo numerico come stringa (stringa)

Provalo tu

function extractPrice(text)
    -- Scrivi il codice qui
end
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Lua online