0Pricing
Lua Academy · Lekcja

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")) -- nil

Zbiory 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]+"))    -- 123

Escapowanie 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
end

string.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  15

Dopasowanie 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

  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