string.gsub do przekształceń
Proszę zastępować wzorce ciągami znaków, funkcjami lub odwołaniami do tabel za pomocą gsub.
string.gsub do przekształceń to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 4 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.gsub
string.gsub(s, pattern, repl, n) zastępuje wystąpienia wzorca pattern w ciągu s wartością repl. Zwraca nowy ciąg oraz liczbę podstawień.
Proste zastępowanie ciągów
Zastąp wszystkie wystąpienia dosłownego podciągu.
local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count) -- hello Lua Lua 2Ograniczanie liczby podstawień
Przekaż czwarty argument, aby ograniczyć liczbę podstawień.
local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1)) -- xxx bbb aaa 1Zastępowanie na podstawie wzorca
Zastąp wszystkie cyfry stałym ciągiem.
local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM")) -- abc NUM def NUM 2Zastępowanie funkcją
Gdy repl jest funkcją, jest wywoływana dla każdego przechwycenia (lub całego dopasowania), a jej wartość zwracana zastępuje dopasowanie.
local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
return tostring(tonumber(n) * 1.1)
end)
print(result) -- price: 110.0, tax: 16.5Zastępowanie tabelą
Gdy repl jest tabelą, każde dopasowanie (lub przechwycenie) jest używane jako klucz, a wartość z tabeli zastępuje dopasowanie.
local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result) -- Hello, Alice! Welcome to Lua.Usuwanie białych znaków
Użyj gsub, aby usunąć białe znaki z początku i końca ciągu.
local function trim(s)
return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim(" hello ") .. "]") -- [hello]Zmiana wielkości liter
Użyj gsub z funkcją, aby zmienić każdą literę na wielką lub małą.
local function toUpper(s)
return s:gsub("%a", string.upper)
end
print(toUpper("hello world")) -- HELLO WORLDEscapowanie znaków specjalnych
Poprzedź wszystkie specjalne znaki wzorców w ciągu znakiem ucieczki, aby można go było użyć jako wzorca dosłownego.
local function escapePat(s)
return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
endUżycie wartości zwracanej jako licznik
Druga zwracana wartość (liczba podstawień) jest przydatna do sprawdzenia, czy wykonano jakiekolwiek podstawienia.
local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") endWzorzec silnika szablonów
Prosty silnik szablonów zastępuje symbole zastępcze {{key}} wartościami z tabeli danych.
local function render(tmpl, data)
return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"})) -- Hi Bob!Pytanie o gsub
Co jest przekazywane do funkcji, gdy repl w gsub jest funkcją?
Podsumowanie: string.gsub
string.gsub to szwajcarski scyzoryk transformacji ciągów: umożliwia zastępowanie ciągami, funkcjami (do dynamicznych obliczeń) lub tabelami (do wyszukiwania słownikowego). Zwraca także liczbę podstawień.
Często zadawane pytania
Czy lekcja „string.gsub do przekształceń” jest bezpłatna?
Tak — pełny tekst „string.gsub do przekształceń” 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.gsub do przekształceń”?
Proszę zastępować wzorce ciągami znaków, funkcjami lub odwołaniami do tabel za pomocą gsub. Ć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 4 z 4.
Ile czasu zajmuje lekcja „string.gsub do przekształceń”?
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ń