0Pricing
Lua Academy · Ders

Lua Örüntü Söz Dizimi

Lua örüntülerindeki %d, %a, %s karakter sınıflarını, sabitleyicileri ve niceleyicileri öğrenin.

Lua Örüntü Söz Dizimi, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Lua Desenleri ve Regex Karşılaştırması

Lua, tam POSIX regex yerine kendi desen dilini kullanır. Bu dil daha basit ve hızlıdır, ancak alternatif oluşturmayı (|) ve ileriye bakışları desteklemez.

Karakter Sınıfları

%d rakam, %a harf, %l küçük harf, %u büyük harf, %s boşluk, %p noktalama, %w ise harf veya rakam belirtir. Büyük harf olumsuzlama yapar: %D = rakam olmayan.

Niceleyiciler

* sıfır veya daha fazla (açgözlü), + bir veya daha fazla, ? sıfır veya bir, - sıfır veya daha fazla (tembel/en kısa eşleşme).

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

Bağlayıcılar

^ dizenin başlangıcına, $ ise sonuna bağlanır.

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

[] ile Karakter Kümeleri

Özel karakter sınıfları: [aeiou] herhangi bir sesli harfle, [^aeiou] sesli olmayan herhangi bir karakterle, [a-z] ise küçük harflerle eşleşir.

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

Sihirli Karakterlerden Kaçış

Sihirli karakterlerin (( ) . % + - * ? [ ^ $) önüne % konularak kaçış uygulanmalıdır.

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

. Joker Karakteri

. herhangi bir tek karakterle eşleşir. Niceleyicilerle birleştirin: .- tembel tümünü eşleştirme düzenidir.

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

Sınır Deseni %f

%f[set], set içinde olmayan bir karakter ile set içinde olan bir karakter arasındaki boş konumla eşleşir; sözcük sınırlarını bulmak için kullanışlıdır.

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

string.find ve string.match Karşılaştırması

string.find başlangıç/bitiş dizinlerini (+ yakalamaları) döndürür. string.match ise eşleşen metni (veya yakalamaları) doğrudan döndürür.

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

Dengeli Eşleşme %b

%bxy, x ve y karakterlerinden oluşan dengeli bir çiftle eşleşir. Örneğin %b(), iç içe olanlar da dahil olmak üzere dengeli parantezlerle eşleşir.

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

Desen Sınırlamaları

Lua desenleri şunları desteklemez: alternatif oluşturma (a|b), geriye başvurular, ileriye/geriye bakış veya adlandırılmış gruplar. Bunlar için LPEG ya da harici bir düzenli ifade kütüphanesi kullanın.

Desen Sözdizimi Sorusu

Bir veya daha fazla rakamla hangi desen eşleşir?

Özet: Lua Desen Sözdizimi

Lua desenleri %d %a %s sınıflarını, * + ? - niceleyicilerini, ^ $ bağlayıcılarını, [] kümelerini ve dengeli eşleştirme için %b ifadesini kullanır. Verimlidirler ancak düzenli ifade alternatif oluşturmayı desteklemezler.

Sıkça Sorulan Sorular

“Lua Örüntü Söz Dizimi” dersi ücretsiz mi?

Evet — “Lua Örüntü Söz Dizimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Lua Örüntü Söz Dizimi” dersinde ne öğreneceğim?

Lua örüntülerindeki %d, %a, %s karakter sınıflarını, sabitleyicileri ve niceleyicileri öğrenin. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Lua Örüntü Söz Dizimi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Lua Örüntü Söz Dizimi
  2. Yakalamalar ve string.match
  3. Belirteçleştirme için string.gmatch
  4. Dönüşümler için string.gsub
← Lua Academy Sayfasına Dön