matches ve find
- Kotlin kursu
- Başlangıç
- Ders 89/116
- 5 dk
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şmefind 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
fun main() {
val r = Regex("\\d+")
// find ile ilk eşleşmeyi al ve value'sini yazdır
}Örnek çözüm
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
val r = Regex("\\d+")
val ilk = r.____("a1b2")
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 |