Lua Academy · Lekcja

string.gmatch do tokenizacji

Proszę iterować po wszystkich dopasowaniach w ciągu znaków za pomocą string.gmatch.

Lekcja 3 z 413 kroki

string.gmatch do tokenizacji to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Lua Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Lua Academy zawiera 4 lekcji w sumie.

Czym jest string.gmatch

string.gmatch(s, pattern) zwraca iterator, który kolejno zwraca wszystkie dopasowania wzorca pattern w ciągu s.

Iterowanie po słowach

Tokenizuj ciąg na słowa, dopasowując sekwencje znaków niebędących spacjami.

local s = "the quick brown fox"
for word in s:gmatch("%S+") do
  print(word)
end

Zbieranie dopasowań w tabeli

Zbierz wszystkie dopasowania w tabeli, aby móc je dalej przetwarzać.

local function split(s, pat)
  local parts = {}
  for token in s:gmatch(pat) do
    parts[#parts+1] = token
  end
  return parts
end
local words = split("one two three", "%S+")
print(#words)  -- 3

Wyodrębnianie liczb

Wyodrębnij wszystkie liczby całkowite z ciągu za pomocą wzorca %d+.

local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
  print(tonumber(n))
end

Używanie przechwyceń w gmatch

Gdy wzorzec zawiera przechwycenia, każda iteracja zwraca przechwycone grupy zamiast całego dopasowania.

local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
  print(k, "->", v)
end

Tokenizator CSV

Podziel wiersz CSV, przechwytując wszystko, co znajduje się między przecinkami.

local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
  print(field)
end

Analizowanie par klucz-wartość

Przeanalizuj ciąg nagłówka w stylu HTTP i utwórz z niego tabelę par klucz-wartość.

local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
  parsed[k] = v:match("^%s*(.-)%s*$")
end

Zliczanie wystąpień wzorca

Policz, ile razy wzorzec występuje w ciągu.

local function count(s, pat)
  local n = 0
  for _ in s:gmatch(pat) do n = n + 1 end
  return n
end
print(count("banana", "an"))  -- 2

Tokenizator zdań

Podziel tekst na zdania, dopasowując tekst aż do znaków interpunkcyjnych.

local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
  print(sent:match("^%s*(.-)%s*$"))
end

gmatch a string.find w pętli

gmatch jest preferowanym sposobem iterowania po wszystkich dopasowaniach. Użycie string.find w pętli while wymaga więcej kodu i jest bardziej podatne na błędy.

Uwaga dotycząca Unicode

Wzorce Lua działają na bajtach. Wielobajtowe znaki UTF-8 mogą nie być poprawnie dopasowywane przez wzorce pojedynczych znaków. Aby uzyskać pełną obsługę Unicode, należy użyć biblioteki UTF-8.

Pytanie o gmatch

Po czym iteruje for w in s:gmatch("%S+") do?

Podsumowanie: string.gmatch

string.gmatch to standardowy tokenizator Lua. Należy używać go do dzielenia ciągów, wyodrębniania wszystkich liczb, analizowania par klucz-wartość i zliczania wystąpień wzorców w przejrzystej pętli iteratora.

Bezpłatny start

Ucz się Lua dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
40
Lekcje
159

Często zadawane pytania

Czy lekcja „string.gmatch do tokenizacji” jest bezpłatna?

Tak — pełny tekst „string.gmatch do tokenizacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Lua Academy, przejdź na CoddyKit PRO. Kurs Lua Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „string.gmatch do tokenizacji”?

Proszę iterować po wszystkich dopasowaniach w ciągu znaków za pomocą string.gmatch. Ćwiczysz Lua Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Lua Academy?

Nie wymagamy żadnego doświadczenia. Lua Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „string.gmatch do tokenizacji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Lua Academy?

Tak. Każda lekcja Lua Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Składnia wzorców Lua
  2. Przechwytywanie i string.match
  3. string.gmatch do tokenizacji
  4. string.gsub do przekształceń
← Powrót do Lua Academy