0Pricing
Lua Academy · Lektion

string.gsub für Transformationen

Ersetzen Sie Muster über gsub durch Zeichenketten, Funktionen oder Tabellenzugriffe

string.gsub für Transformationen ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist string.gsub?

string.gsub(s, pattern, repl, n) ersetzt Vorkommen von pattern in s durch repl. Zurückgegeben werden die neue Zeichenkette und die Anzahl der Ersetzungen.

Einfache Zeichenkettenersetzung

Ersetzen Sie alle Vorkommen einer wörtlichen Teilzeichenkette.

local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count)  -- hello Lua Lua  2

Ersetzungen begrenzen

Übergeben Sie ein viertes Argument, um die Anzahl der Ersetzungen zu begrenzen.

local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1))  -- xxx bbb aaa  1

Musterbasierte Ersetzung

Ersetzen Sie alle Ziffern durch eine feste Zeichenkette.

local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM"))  -- abc NUM def NUM  2

Ersetzung durch eine Funktion

Wenn repl eine Funktion ist, wird sie mit jedem Capture (oder dem gesamten Treffer) aufgerufen. Ihr Rückgabewert ersetzt den Treffer.

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

Ersetzung durch eine Tabelle

Wenn repl eine Tabelle ist, wird jeder Treffer (oder jedes Capture) als Schlüssel verwendet; der Tabellenwert ersetzt den Treffer.

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.

Leerraum entfernen

Verwenden Sie gsub, um führenden und nachgestellten Leerraum aus einer Zeichenkette zu entfernen.

local function trim(s)
  return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim("  hello  ") .. "]")  -- [hello]

Groß- und Kleinschreibung umwandeln

Verwenden Sie gsub mit einer Funktion, um jeden Buchstaben in Groß- oder Kleinbuchstaben umzuwandeln.

local function toUpper(s)
  return s:gsub("%a", string.upper)
end
print(toUpper("hello world"))  -- HELLO WORLD

Sonderzeichen maskieren

Maskieren Sie alle magischen Zeichen eines Musters in einer Zeichenkette, damit sie als wörtliches Muster verwendet werden kann.

local function escapePat(s)
  return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
end

Verwendung des Rückgabewerts für die Anzahl

Der zweite Rückgabewert, die Anzahl der Ersetzungen, ist nützlich, um festzustellen, ob Ersetzungen vorgenommen wurden.

local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") end

Muster für eine Template-Engine

Eine einfache Template-Engine ersetzt Platzhalter wie {{key}} durch Werte aus einer Datentabelle.

local function render(tmpl, data)
  return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"}))  -- Hi Bob!

gsub-Frage

Was wird an repl übergeben, wenn repl in gsub eine Funktion ist?

Zusammenfassung: string.gsub

string.gsub ist das Schweizer Taschenmesser der Zeichenkettentransformation: Es kann durch Zeichenketten, Funktionen (für dynamische Berechnungen) oder Tabellen (für Wörterbuchabfragen) ersetzen. Außerdem gibt es die Anzahl der Ersetzungen zurück.

Häufig gestellte Fragen

Ist die Lektion „string.gsub für Transformationen“ kostenlos?

Ja — der vollständige Text von „string.gsub für Transformationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „string.gsub für Transformationen“?

Ersetzen Sie Muster über gsub durch Zeichenketten, Funktionen oder Tabellenzugriffe Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Lua Academy zu starten?

Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „string.gsub für Transformationen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?

Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Syntax von Lua-Mustern
  2. Captures und string.match
  3. string.gmatch zur Tokenisierung
  4. string.gsub für Transformationen
← Zurück zu Lua Academy