Menu
Coddy logo textTech

Iterowanie za pomocą string.gmatch()

Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 39 z 54.

Podczas gdy string.match() znajduje pierwsze wystąpienie wzorca, co zrobić, jeśli chcesz znaleźć wszystkie dopasowania w ciągu znaków? Funkcja string.gmatch() rozwiązuje ten problem, zwracając iterator, którego możesz użyć w pętli for, aby przetwarzać każde dopasowanie po kolei.

Podstawowa składnia wygląda tak:

for match in string.gmatch(text, pattern) do
    -- przetwórz każde dopasowanie
end

Oto przykład, który znajduje wszystkie liczby w ciągu znaków:

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

Wzorzec %d+ dopasowuje jedną lub więcej cyfr, a pętla wykonuje się raz dla każdej znalezionej liczby.

Możesz też wyodrębnić wszystkie słowa ze zdania:

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

Wyzwanie

Łatwy

Napisz funkcję extractHashtags, która przyjmuje text i zwraca wszystkie hashtagi znalezione w tekście, każdy w osobnym wierszu.

Użyj string.gmatch(), aby znaleźć wszystkie hashtagi w tekście. Hashtag zaczyna się od #, po którym występuje co najmniej jedna litera.

Logika:

  • Użyj string.gmatch() ze wzorcem "#%a+", aby znaleźć wszystkie hashtagi
  • Przejdź przez każde dopasowanie i zbierz je
  • Połącz wszystkie hashtagi znakami nowej linii (\n)
  • Jeśli nie znaleziono hashtagów, zwróć pusty ciąg znaków

Parametry:

  • text (string): Tekst, w którym należy wyszukać hashtagi

Zwraca: Wszystkie znalezione hashtagi, każdy w osobnym wierszu. Jeśli nie ma hashtagów, zwróć pusty ciąg znaków (string)

Spróbuj swoich sił

function extractHashtags(text)
    -- Wpisz kod tutaj
end
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Lua online