Menu
Coddy logo textTech

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_lua

Die 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: 2

Im 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.

challenge icon

Aufgabe

Einfach

Schreiben 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_lua

Die 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: 2

string.gsub() ersetzt standardmäßig jedes Vorkommen, nicht nur die erste Übereinstimmung.

Probier es selbst

function cleanText(text)
    -- Schreibe hier den Code
end
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow