string.gsub() für Ersetzungen
Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 35 von 54.
Beim Arbeiten mit Strings müssen Sie oft Text finden und ersetzen. Luas string.gsub()-Funktion macht dies einfach, indem sie eine globale Ersetzung durchführt – sie findet alle Vorkommen eines Musters und ersetzt sie durch etwas anderes.
Die grundlegende Syntax benötigt drei Argumente: die ursprüngliche Zeichenfolge, das zu suchende Muster und den Ersetzungstext:
local result = string.gsub(originalString, pattern, replacement)Hier ist ein einfaches Beispiel, das alle Leerzeichen durch Unterstriche ersetzt:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Ausgabe: hello_world_from_luaDie Funktion gibt zwei Werte zurück: die geänderte Zeichenfolge und die Anzahl der vorgenommenen Ersetzungen. Sie können beide erfassen, falls erforderlich:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Ausgabe: baz bar baz
print(count) -- Ausgabe: 2Im Gegensatz zu einigen String-Funktionen, die nur die erste Übereinstimmung finden, ersetzt string.gsub() standardmäßig jedes Vorkommen, was es ideal für Textbereinigungsaufgaben macht, wie das Entfernen unerwünschter Zeichen oder das Standardisieren der Formatierung.
Aufgabe
EinfachSchreiben Sie eine Funktion cleanText, die text entgegennimmt und eine bereinigte Version zurückgibt, in der alle Leerzeichen durch Unterstriche ersetzt wurden.
Verwenden Sie string.gsub(), um jedes Leerzeichen im Text durch einen Unterstrich zu ersetzen.
Parameter:
text(string): Der zu bereinigende Text
Rückgabewert: Der Text, bei dem alle Leerzeichen durch Unterstriche ersetzt wurden (string)
Spickzettel
Die Funktion string.gsub() führt eine globale Ersetzung durch, indem sie alle Vorkommen eines Musters findet und diese ersetzt:
local result = string.gsub(originalString, pattern, replacement)Beispiel für das Ersetzen von Leerzeichen durch Unterstriche:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Ausgabe: hello_world_from_luaDie Funktion gibt zwei Werte zurück: die geänderte Zeichenfolge und die Anzahl der vorgenommenen Ersetzungen:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Ausgabe: baz bar baz
print(count) -- Ausgabe: 2string.gsub() ersetzt standardmäßig jedes Vorkommen, nicht nur die erste Übereinstimmung.
Probier es selbst
function cleanText(text)
-- Schreibe hier den Code
end
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Fortgeschrittene Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle