string.gsub per le trasformazioni
Sostituisca i pattern con stringhe, funzioni o ricerche in tabelle tramite gsub.
string.gsub per le trasformazioni è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Lua Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Lua Academy include 4 lezioni in totale.
Che cos'è string.gsub?
string.gsub(s, pattern, repl, n) sostituisce le occorrenze di pattern in s con repl. Restituisce la nuova stringa e il numero di sostituzioni.
Sostituzione semplice di stringhe
Sostituite tutte le occorrenze di una sotto-stringa letterale.
local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count) -- hello Lua Lua 2Limitazione delle sostituzioni
Passate un quarto argomento per limitare il numero di sostituzioni.
local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1)) -- xxx bbb aaa 1Sostituzione basata su pattern
Sostituite tutte le cifre con una stringa fissa.
local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM")) -- abc NUM def NUM 2Sostituzione tramite funzione
Quando repl è una funzione, viene chiamata con ogni cattura (o con l'intera corrispondenza) e il valore restituito sostituisce la corrispondenza.
local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
return tostring(tonumber(n) * 1.1)
end)
print(result) -- price: 110.0, tax: 16.5Sostituzione tramite tabella
Quando repl è una tabella, ogni corrispondenza (o cattura) viene usata come chiave; il valore della tabella sostituisce la corrispondenza.
local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result) -- Hello, Alice! Welcome to Lua.Rimozione degli spazi bianchi
Usate gsub per rimuovere gli spazi bianchi iniziali e finali da una stringa.
local function trim(s)
return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim(" hello ") .. "]") -- [hello]Conversione delle maiuscole e minuscole
Usate gsub con una funzione per convertire ogni lettera in maiuscolo o in minuscolo.
local function toUpper(s)
return s:gsub("%a", string.upper)
end
print(toUpper("hello world")) -- HELLO WORLDEscape dei caratteri speciali
Fate l'escape di tutti i caratteri speciali dei pattern presenti in una stringa, così da poterla usare come pattern letterale.
local function escapePat(s)
return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
endUso del conteggio restituito
Il secondo valore restituito (il conteggio delle sostituzioni) è utile per rilevare se è stata effettuata qualche sostituzione.
local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") endPattern per un motore di template
Un semplice motore di template sostituisce i segnaposto {{key}} con i valori di una tabella di dati.
local function render(tmpl, data)
return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"})) -- Hi Bob!Domanda su gsub
Quando repl in gsub è una funzione, che cosa le viene passato?
Riepilogo: string.gsub
string.gsub è uno strumento estremamente versatile per la trasformazione delle stringhe: consente di sostituire con stringhe, funzioni (per calcoli dinamici) o tabelle (per cercare valori in un dizionario). Restituisce anche il conteggio delle sostituzioni.
Domande Frequenti
La lezione «string.gsub per le trasformazioni» è gratuita?
Sì — il testo completo di «string.gsub per le trasformazioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Lua Academy, passa a CoddyKit PRO. Il corso Lua Academy include 4 lezioni in totale.
Cosa imparerò in «string.gsub per le trasformazioni»?
Sostituisca i pattern con stringhe, funzioni o ricerche in tabelle tramite gsub. Eserciti Lua Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Lua Academy?
Non è richiesta alcuna esperienza precedente. Lua Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «string.gsub per le trasformazioni»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Lua Academy?
Sì. Ogni lezione Lua Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Sintassi dei pattern Lua
- Catture e string.match
- string.gmatch per la tokenizzazione
- string.gsub per le trasformazioni