Składnia wzorców Lua
Proszę poznać klasy znaków %d, %a, %s, kotwice i kwantyfikatory we wzorcach Lua.
Składnia wzorców Lua to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 1 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.
Wzorce Lua a wyrażenia regularne
Lua korzysta z własnego języka wzorców, a nie z pełnych wyrażeń regularnych POSIX. Jest on prostszy i szybszy, ale nie obsługuje alternatywy (|) ani wyprzedzeń.
Klasy znaków
%d oznacza cyfrę, %a literę, %l małą literę, %u wielką literę, %s biały znak, %p znak interpunkcyjny, a %w znak alfanumeryczny. Wielka litera oznacza negację: %D = znak niebędący cyfrą.
Kwantyfikatory
* zero lub więcej (zachłannie), + jeden lub więcej, ? zero lub jeden, - zero lub więcej (leniwy/najkrótsze dopasowanie).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Kotwice
^ kotwiczy dopasowanie na początku ciągu, a $ na jego końcu.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilZbiory znaków za pomocą []
Niestandardowe klasy znaków: [aeiou] dopasowuje dowolną samogłoskę, [^aeiou] dowolny znak niebędący samogłoską, a [a-z] małe litery.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Escapowanie znaków specjalnych
Znaki specjalne ( ) . % + - * ? [ ^ $ należy poprzedzić znakiem %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)Symbol wieloznaczny .
. dopasowuje dowolny pojedynczy znak. Można łączyć go z kwantyfikatorami: .- oznacza leniwe dopasowanie dowolnego ciągu.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Wzorzec granicy %f
%f[set] dopasowuje pustą pozycję między znakiem nienależącym do set a znakiem należącym do set — jest to przydatne do oznaczania granic słów.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find a string.match
string.find zwraca indeksy początku i końca (+ przechwycenia). string.match zwraca bezpośrednio dopasowany tekst (lub przechwycenia).
local s = "date: 2025-01-15"
local i, j = s:find("%d%d%d%d%-%d%d%-%d%d")
print(i, j) -- 7 16
print(s:match("(%d+)-(%d+)-(%d+)")) -- 2025 01 15Dopasowanie zrównoważone %b
%bxy dopasowuje zrównoważoną parę znaków x i y. Na przykład %b() dopasowuje zrównoważone nawiasy, w tym nawiasy zagnieżdżone.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Ograniczenia wzorców
Wzorce Lua nie obsługują: alternatywy (a|b), odwołań wstecznych, lookahead/lookbehind ani nazwanych grup. W takich przypadkach należy użyć LPEG lub zewnętrznej biblioteki wyrażeń regularnych.
Pytanie o składnię wzorców
Który wzorzec dopasowuje jedną lub więcej cyfr?
Podsumowanie: składnia wzorców Lua
Wzorce Lua używają klas %d %a %s, kwantyfikatorów * + ? -, kotwic ^ $, zbiorów [] oraz %b do dopasowywania zrównoważonych par. Są wydajne, ale nie obsługują alternatywy znanej z wyrażeń regularnych.
Często zadawane pytania
Czy lekcja „Składnia wzorców Lua” jest bezpłatna?
Tak — pełny tekst „Składnia wzorców Lua” 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 „Składnia wzorców Lua”?
Proszę poznać klasy znaków %d, %a, %s, kotwice i kwantyfikatory we wzorcach Lua. Ć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 1 z 4.
Ile czasu zajmuje lekcja „Składnia wzorców Lua”?
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ń