CodeBlanks Logo Icon CodeBlanks

Regex

Regex ile düzenli ifadeler öğrenirsin.

Regex: desenlerle eşleştirme

Kotlin'de Regex sınıfı bir metni desenle eşleştirir. Desen, özel sembollerle yazılmış bir dizedir: \d rakam, \w harf rakam alt çizgi, + bir veya fazla, * sıfır veya fazla demektir.

val rakamlar = Regex("\\d+")
val sonuc = rakamlar.matches("12345")
// true

Dize içinde ters bölü kaçışlamak için iki tane yazılır. Ham dize kullanırsan tek ters böl yeterli olur. Regex; telefon, e-posta ya da tarih gibi yapıları doğrulamak için idealdir.

Regex sınıfını kullanma

Bir Regex nesnesi Regex(desen) biçiminde oluşturulur. Aynı deseni birden çok kez kullanacaksan değişkene ata ki her seferinde derlenmesin.

val telefon = Regex("\\d{3}-\\d{4}")
println(telefon.matches("555-1234"))
// true

Desen içinde {n} tam n kez, {n,m} en az n en çok m kez demektir. Böylece sabit uzunluktaki desenleri rahatça yazarsın. Deseni bir kez tanımla, sonra istediğin kadar eşle.

Uygulama Regex ile sına

Bir veya daha fazla rakamı eşleştiren bir Regex tanımla. "2024" dizesini matches ile sına ve sonucu yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir Regex tanımla: bir veya daha fazla rakam
    // "2024" dizesini matches ile sınayın
}

Örnek çözüm

Main.kt
val r = Regex("\\d+")
println(r.matches("2024"))

Beklenen çıktı

true

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Desen ve anlam eşleştir

Kavram Anlamı
\d Rakam
\w Harf rakam alt çizgi
+ Bir veya fazla
* Sıfır veya fazla

2 Boşluğu doldur: Regex tanımla

Soru
val r = ____("\\d+")
Cevap
val r = Regex("\\d+")

Açıklama: Regex(desen) biçiminde yeni bir desen nesnesi oluşturulur.

3 Hangi desen 'abc123' dizesindeki rakamları yakalar?

Main.kt
val r = Regex("\\d+")
  • \d?
  • \w-
  • [abc]+
  • \d+ Doğru cevap

Açıklama: \d+ bir veya daha fazla rakamı eşleştirir.

Başlangıç bölümündeki tüm dersler