Menu
Coddy logo textTech

Iteration mit string.gmatch()

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 39 von 54.

Während string.match() das erste Vorkommen eines Musters findet, was ist, wenn du alle Übereinstimmungen in einer Zeichenkette finden musst? Die Funktion string.gmatch() löst dieses Problem, indem sie einen Iterator zurückgibt, den du in einer for-Schleife verwenden kannst, um jede Übereinstimmung einzeln zu verarbeiten.

Die grundlegende Syntax sieht so aus:

for match in string.gmatch(text, pattern) do
    -- verarbeite jedes Match
end

Hier ist ein Beispiel, das alle Zahlen in einem string findet:

local text = "I have 3 apples and 5 oranges"
for number in string.gmatch(text, "%d+") do
    print(number)
end
-- Ausgabe:
-- 3
-- 5

Das Muster %d+ stimmt mit einer oder mehreren Ziffern überein, und die Schleife wird einmal für jede gefundene Zahl ausgeführt.

Du kannst auch alle Wörter aus einem Satz extrahieren:

local sentence = "Lua is a powerful language"
for word in string.gmatch(sentence, "%a+") do
    print(word)
end
-- Ausgabe:
-- Lua
-- is
-- a
-- powerful
-- language
challenge icon

Aufgabe

Einfach

Schreibe eine Funktion extractHashtags, die text entgegennimmt und alle im Text gefundenen Hashtags zurückgibt, jeweils in einer eigenen Zeile.

Verwende string.gmatch(), um alle Hashtags im Text zu finden. Ein Hashtag beginnt mit #, gefolgt von einem oder mehreren Buchstaben.

Logik:

  • Verwende string.gmatch() mit dem Muster "#%a+", um alle Hashtags zu finden
  • Iteriere über jeden Treffer und sammle sie
  • Verbinde alle Hashtags mit Zeilenumbruchzeichen (\n)
  • Wenn keine Hashtags gefunden werden, gib eine leere Zeichenkette zurück

Parameter:

  • text (string): Der Text, in dem nach Hashtags gesucht werden soll

Rückgabewert: Alle gefundenen Hashtags, jeweils in einer eigenen Zeile. Wenn keine Hashtags vorhanden sind, gib eine leere Zeichenkette zurück (string)

Probier es selbst

function extractHashtags(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 Logik & Programmablauf

Übe selbstständig: Online-Lua-Compiler