Eliminazione di caratteri che corrispondono a un pattern

Lua:
Eliminazione di caratteri che corrispondono a un pattern

How to:

In Lua, puoi usare la funzione string.gsub per eliminare caratteri o pattern. Ecco un esempio pratico:

local testo_originale = "Lua è fantastico, 123!"
local pattern = "%D" -- pattern che individua tutti i caratteri non numerici
local testo_pulito, num_sostituzioni = testo_originale:gsub(pattern, "")

print(testo_pulito)  -- Output: 123
print("Sostituzioni effettuate: ", num_sostituzioni)  -- Output: Sostituzioni effettuate:  18

Qui %D trova ogni carattere che non è un numero (%d troverebbe i numeri). La funzione gsub li sostituisce con una stringa vuota, cioè li cancella.

Deep Dive

La funzione gsub in Lua è erede diretta delle espressioni regolari usate in ambienti di programmazione UNIX fin dagli anni ‘70. Lua usa un sistema più semplice rispetto ad altri linguaggi, mirando alla performance e alla leggibilità.

Hai alternative per eliminare pattern: puoi iterare sui caratteri o usare funzioni di libreria esterne per pattern matching più avanzato, ma gsub è il modo più comune e diretto fornito nativamente da Lua.

Dal punto di vista dell’implementazione, gsub crea una nuova stringa anziché modificare quella originale, perché in Lua le stringhe sono immutabili. Questo comporta un maggior controllo sui dati ma anche potenziali overhead in termini di memoria.

See Also