CodeBlanks Logo Icon CodeBlanks

matches ve find

matches ve find ile regex arama öğrenirsin.

matches ve find: iki eşleştirme biçimi

matches dizenin tümünün desene uymasını ister; find dizenin içinde eşleşme arar ve ilkini bulur.

val r = Regex("\\d+")
r.matches("123")   // true — tümü rakam
r.matches("a12")   // false — tümü rakam değil
r.find("a12b")?.value  // "12" — ilk eşleşme

find eşleşme yoksa null döner; bu yüzden ?.value güvenli çağrı kullanılır. Telefonu doğrulamak için matches, metin içindeki rakamları çıkarmak için find uygundur.

findAll: tüm eşleşmeleri al

findAll metindeki tüm eşleşmeleri bir dizi olarak verir. Her eşleşme bir MatchResult'tür ve value özelliği eşleşen metni taşır.

val r = Regex("\\d+")
val liste = r.findAll("a1b22c333").map { it.value }.toList()
// ["1", "22", "333"]

map her eşleşmeyi value değerine çevirir; toList sonucu bir listeye dönüştürür. Böylece bir metinden sayıları, etiketleri ya da kodları ayıklarsın.

Uygulama İlk rakamı bul ve yazdır

Regex("\\d+") deseni ile "a42b7" dizesinde find çağır; eşleşmenin value değerini yazdır.

Başlangıç kodu

Main.kt
fun main() {
    val r = Regex("\\d+")
    // find ile ilk eşleşmeyi al ve value'sini yazdır
}

Örnek çözüm

Main.kt
val r = Regex("\\d+")
println(r.find("a42b7")?.value)

Beklenen çıktı

42

Soru ve cevaplar

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

1 Regex("\\d+").matches("abc") ne döner?

  • null
  • true
  • false Doğru cevap
  • Hata fırlatır

Açıklama: matches tümü rakam olmadığı için false döner; null değil.

2 Boşluğu doldur: ilk eşleşmeyi bul

Soru
val r = Regex("\\d+")
val ilk = r.____("a1b2")
Cevap
val r = Regex("\\d+")
val ilk = r.find("a1b2")

Açıklama: find ilk eşleşmeyi bir MatchResult olarak döndürür.

3 Yöntem ve görev eşleştir

Kavram Anlamı
matches Tümü uymalı
find İlk eşleşme
findAll Tüm eşleşmeler
?.value Güvenli erişim

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