Yakalamalar ve string.match
string.match ve () yakalamalarını kullanarak dizelerden yakalanan grupları çıkarın.
Yakalamalar ve string.match, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. 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.
Yakalamalar Nedir?
Yakalamalar, Lua desenlerindeki parantez içine alınmış alt desenlerdir. Eşleşen metinden alt dizeleri çıkarırlar.
Yakalamalarla string.match
Bir desen yakalamalar içerdiğinde string.match, eşleşmenin tamamı yerine yakalanan alt dizeleri döndürür.
local date = "2025-01-15"
local y, m, d = date:match("(%d+)-(%d+)-(%d+)")
print(y, m, d) -- 2025 01 15Tek Yakalama
Tek bir yakalama, bir dize değeri döndürür.
local s = "name: Alice"
local name = s:match("name: (%a+)")
print(name) -- AliceBirden Çok Yakalama
Birden çok yakalama, birden çok değer olarak döndürülür.
local pair = "key = value"
local k, v = pair:match("(%w+)%s*=%s*(%w+)")
print(k, v) -- key valueKonumsal Yakalamalar ()
Boş bir yakalama olan (), geçerli dize konumunu sayı olarak yakalar.
local s = "hello world"
local pos = s:match("()world")
print(pos) -- 7 (position where world starts)İsteğe Bağlı Yakalamalar
Yakalanan grubun sonuna ? ekleyerek isteğe bağlı bir bölümü yakalayabilirsiniz.
local s = "http://example.com"
local protocol, host = s:match("(https?)://([^/]+)")
print(protocol, host) -- http example.comYakalamalarla string.find
Yakalamalarla kullanılan string.find, başlangıcı, bitişi ve ardından yakalanan alt dizeleri döndürür.
local s = "phone: 555-1234"
local i, j, num = s:find("phone: (%d+-%d+)")
print(i, j, num) -- 1 16 555-1234İç İçe Yakalamalar
Yakalamalar iç içe olabilir. Açılış parantezlerine göre soldan sağa numaralandırılırlar.
local s = "2025-01-15"
local full, year = s:match("((%d%d%d%d)-%d%d-%d%d)")
print(full, year) -- 2025-01-15 2025Yakalama İçin En İyi Uygulamalar
Açıklık için adlandırma kuralına uygun değişkenler kullanın. Yakalamaları gereğinden fazla iç içe yerleştirmeyin. Eşleşme başarısızlıkları nil döndürür; yakalamaları kullanmadan önce her zaman kontrol edin.
local result = s:match("(%d+)")
if result then print("found:", result)
else print("no match") endE-posta Adreslerini Eşleştirme
Yakalamalar içeren basit (RFC uyumlu olmayan) bir e-posta deseni.
local email = "user@example.com"
local user, domain = email:match("([^@]+)@(.+)")
print(user, domain) -- user example.comTüm Eşleşmeler Tablosu
Tüm eşleşmeleri bir tabloda toplamak için string.gmatch kullanın (sonraki derste ele alınacaktır).
Yakalamalar Sorusu
"2025-01-15":match("(%d+)-(%d+)-(%d+)") ne döndürür?
Özet: Yakalamalar ve string.match
Yakalamalar, alt dizeleri çıkarmak için desenlerde () kullanır. string.match, yakalanan değerleri doğrudan döndürür. Boş () konumları yakalar. Eşleşme sonuçlarını her zaman nil açısından kontrol edin.
Sıkça Sorulan Sorular
“Yakalamalar ve string.match” dersi ücretsiz mi?
Evet — “Yakalamalar ve string.match” 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.
“Yakalamalar ve string.match” dersinde ne öğreneceğim?
string.match ve () yakalamalarını kullanarak dizelerden yakalanan grupları çıkarın. 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 2. dersidir.
“Yakalamalar ve string.match” 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
- Lua Örüntü Söz Dizimi
- Yakalamalar ve string.match
- Belirteçleştirme için string.gmatch
- Dönüşümler için string.gsub