0Pricing
Lua Academy · Pelajaran

Sintaks Pola Lua

Pelajari kelas karakter %d, %a, %s, anchor, dan quantifier dalam pola Lua.

Sintaks Pola Lua adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Pola Lua vs Regex

Lua menggunakan bahasa polanya sendiri, bukan regex POSIX lengkap. Bahasa ini lebih sederhana dan cepat, tetapi tidak memiliki alternasi (|) dan pemeriksaan awal.

Kelas Karakter

%d digit, %a huruf, %l huruf kecil, %u huruf besar, %s spasi kosong, %p tanda baca, %w alfanumerik. Huruf besar menegasikan: %D = bukan digit.

Kuantifikator

* nol atau lebih (rakus), + satu atau lebih, ? nol atau satu, - nol atau lebih (malas/cocok terpendek).

local s = "hello world"
print(s:match("%a+"))   -- hello (first word)
print(s:match(".-o"))   -- hell (lazy stops early)

Jangkar

^ menjangkar ke awal string, sedangkan $ menjangkar ke akhir string.

print(("hello"):match("^h"))     -- h
print(("hello"):match("o$"))     -- o
print(("hello"):match("^world")) -- nil

Himpunan Karakter dengan []

Kelas karakter khusus: [aeiou] cocok dengan vokal apa pun, [^aeiou] cocok dengan karakter selain vokal, dan [a-z] cocok dengan huruf kecil.

local s = "Hello World 123"
print(s:match("[A-Z]"))     -- H
print(s:match("[0-9]+"))    -- 123

Meloloskan Karakter Ajaib

Karakter ajaib ( ) . % + - * ? [ ^ $ harus diloloskan dengan %.

local s = "price: 3.14"
print(s:match("%d+%.%d+"))  -- 3.14 (. escaped to match literal dot)

Wildcard .

. cocok dengan satu karakter apa pun. Gabungkan dengan kuantifikator: .- adalah pencocokan malas terhadap semua karakter.

print(("abc123"):match("(.-)%d"))  -- abc (lazy, stops at first digit)

Pola Frontier %f

%f[set] cocok dengan posisi kosong di antara karakter yang tidak terdapat dalam set dan karakter yang terdapat dalam set — berguna untuk batas kata.

local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
  print(w)  -- hello, world, foo
end

string.find vs string.match

string.find mengembalikan indeks awal/akhir (serta hasil tangkapan). string.match langsung mengembalikan teks yang cocok (atau hasil tangkapan).

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

Pencocokan Berimbang %b

%bxy cocok dengan pasangan karakter x dan y yang berimbang. Misalnya, %b() cocok dengan tanda kurung yang berimbang, termasuk yang bersarang.

local s = "func(a, (b+c), d)"
print(s:match("%b()"))  -- (a, (b+c), d)

Keterbatasan Pola

Pola Lua tidak mendukung: alternasi (a|b), referensi balik, lihat-depan/lihat-belakang, atau grup bernama. Untuk kebutuhan tersebut, gunakan LPEG atau pustaka regex eksternal.

Pertanyaan Sintaks Pola

Pola mana yang cocok dengan satu digit atau lebih?

Ringkasan: Sintaks Pola Lua

Pola Lua menggunakan kelas %d %a %s, kuantifikator * + ? -, jangkar ^ $, himpunan [], dan %b untuk pencocokan berimbang. Pola ini efisien, tetapi tidak memiliki alternasi regex.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Sintaks Pola Lua” gratis?

Ya — teks lengkap “Sintaks Pola Lua” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Sintaks Pola Lua”?

Pelajari kelas karakter %d, %a, %s, anchor, dan quantifier dalam pola Lua. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Sintaks Pola Lua” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Sintaks Pola Lua
  2. Capture dan string.match
  3. string.gmatch untuk Tokenisasi
  4. string.gsub untuk Transformasi
← Kembali ke Lua Academy