Menu
Coddy logo textTech

String Desenlerine Giriş

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 36 / 54.

Önceki derste string.gsub() kullandığınızda, boşluklar veya belirli kelimeler gibi tam metinleri aradınız. Ancak tam karakteri bilmeden "herhangi bir rakam" veya "herhangi bir harf" bulmanız gerekirse ne olur? İşte dize desenleri (string patterns) burada devreye girer.

Lua'daki dize kalıpları (string patterns), tam metnin kendisinden ziyade ne tür bir metin aradığınızı tanımlamanın bir yoludur. Düzenli ifadelerden (regular expressions) daha basittirler ancak çoğu metin işleme görevi için yeterince güçlüdürler.

Lua, karakter kategorileriyle eşleşen karakter sınıfları adı verilen özel kodlar sağlar. İşte en yaygın olanları:

%d  -- herhangi bir rakamla eşleşir (0-9)
%a  -- herhangi bir harfle eşleşir (a-z, A-Z)
%s  -- herhangi bir boşluk karakteriyle eşleşir (boşluk, tab, yeni satır)
%w  -- herhangi bir alfanümerik karakterle eşleşir (harfler ve rakamlar)
%p  -- herhangi bir noktalama işaretiyle eşleşir

Bir dizedeki ilk rakamı bulmak için bu desenleri string.find() ile şu şekilde kullanabilirsiniz:

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Çıktı: 6

Bu sınıfların büyük harf versiyonlarını da zıttıyla eşleşmek için kullanabilirsiniz. Örneğin, %D rakam olmayan herhangi bir karakterle eşleşir ve %A harf olmayan herhangi bir karakterle eşleşir.

challenge icon

Görev

Kolay

text parametresini alan ve metnin en az bir rakam içerip içermediğini döndüren bir containsDigit fonksiyonu yazın.

Dizede herhangi bir rakam olup olmadığını kontrol etmek için %d karakter sınıfıyla birlikte string.find() kullanın.

Parametreler:

  • text (string): Rakam olup olmadığı kontrol edilecek metin

Döndürdüğü Değer: Metin en az bir rakam içeriyorsa true, aksi takdirde false (boolean)

Kopya kağıdı

Lua'daki dize desenleri (string patterns), tam metnin kendisinden ziyade ne tür bir metin aradığınızı tanımlar.

Lua, karakter kategorileriyle eşleşen karakter sınıfları adı verilen özel kodlar sağlar:

%d  -- herhangi bir rakamla eşleşir (0-9)
%a  -- herhangi bir harfle eşleşir (a-z, A-Z)
%s  -- herhangi bir boşluk karakteriyle eşleşir (boşluk, tab, yeni satır)
%w  -- herhangi bir alfanümerik karakterle eşleşir (harfler ve rakamlar)
%p  -- herhangi bir noktalama işaretiyle eşleşir

Zıt anlamlısıyla eşleşmek için büyük harf versiyonlarını kullanabilirsiniz. Örneğin, %D rakam olmayan herhangi bir karakterle eşleşir ve %A harf olmayan herhangi bir karakterle eşleşir.

Karakter sınıflarının string.find() ile kullanımı:

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Output: 6

Kendin dene

function containsDigit(text)
    -- Kodunuzu buraya yazın
end
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler