Menu
Coddy logo textTech

Iterieren 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 Sie alle Übereinstimmungen in einem String finden müssen? Die Funktion string.gmatch() löst dies, indem sie einen Iterator zurückgibt, den Sie in einer for-Schleife verwenden können, um jede Übereinstimmung nacheinander zu verarbeiten.

Die grundlegende Syntax sieht so aus:

for match in string.gmatch(text, pattern) do
    -- verarbeite jede Übereinstimmung
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+ entspricht einer oder mehreren Ziffern, und die Schleife wird für jede gefundene Zahl einmal 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

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

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

Logik:

  • Verwenden Sie string.gmatch() mit dem Muster "#%a+", um alle Hashtags zu finden
  • Iterieren Sie durch jede Übereinstimmung und sammeln Sie diese
  • Verbinden Sie alle Hashtags mit Zeilenumbruchzeichen (\n)
  • Wenn keine Hashtags gefunden werden, geben Sie einen leeren String zurück

Parameter:

  • text (string): Der Text, der nach Hashtags durchsucht werden soll

Rückgabewert: Alle gefundenen Hashtags, jeder in einer eigenen Zeile. Wenn keine Hashtags existieren, geben Sie einen leeren String zurück (string)

Probier es selbst

function extractHashtags(text)
    -- Schreibe den Code hier
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