string.gmatch do tokenizacji
Proszę iterować po wszystkich dopasowaniach w ciągu znaków za pomocą string.gmatch.
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)
endZbieranie 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) -- 3Wyodrę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))
endUż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)
endTokenizator 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)
endAnalizowanie 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*$")
endZliczanie 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")) -- 2Tokenizator 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*$"))
endgmatch 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.
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
- Składnia wzorców Lua
- Przechwytywanie i string.match
- string.gmatch do tokenizacji
- string.gsub do przekształceń