0Pricing
Java Academy · Ders

Bulma ve Eşleştirme

matches, find, lookingAt

Bulma ve Eşleştirme, CoddyKit'te ücretsiz bir Java 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, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Bir Deseni Uygulamanın Üç Yolu

Matcher üç temel test sunar:

  • matches(), girdinin tamamının eşleşmesini gerektirir.
  • lookingAt(), başlangıçta bir eşleşme olmasını gerektirir.
  • find(), herhangi bir yerde eşleşme arar.
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("42");
        System.out.println(m.matches());
    }
}

matches: Girdinin Tamamı

matches, yalnızca dizenin tamamı desene uyuyorsa true döndürür; bu, dizenin her iki ucunda da sabit varmış gibi davranır.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d+");
        System.out.println(p.matcher("123").matches());
        System.out.println(p.matcher("123abc").matches());
    }
}

lookingAt: Başlangıçta Eşleşme

lookingAt, girdinin geri kalanı eşleşmese bile girdi bir eşleşmeyle başlıyorsa başarılı olur.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d+");
        System.out.println(p.matcher("123abc").lookingAt());
        System.out.println(p.matcher("abc123").lookingAt());
    }
}

find: Herhangi Bir Yerde Eşleşme

find, bir sonraki eşleşme için ileriye doğru tarama yapar. Geçerli konumdan itibaren bir eşleşme varsa true döndürür.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d+");
        System.out.println(p.matcher("abc123def").find());
    }
}

find ile Tüm Eşleşmeleri Yineleme

Bir döngüde find çağırmak, girdideki her eşleşmenin üzerinden geçer.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("a1bb22ccc333");
        while (m.find()) {
            System.out.println(m.group());
        }
    }
}

Eşleşme Konumları: start ve end

Başarılı bir eşleşmeden sonra start() ve end() dizin aralığını, group() ise eşleşen metni verir.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("abc123");
        if (m.find()) {
            System.out.println(m.group() + " at [" + m.start() + "," + m.end() + ")");
        }
    }
}

find ile Sabitler

^ ve $ sabitleri, find yönteminin başlangıç/bitiş denetimleri gibi davranmasını sağlar. Burada ^\d+ yalnızca en baştaki rakamlarla eşleşir.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("^\\d+");
        System.out.println(p.matcher("123abc").find());
        System.out.println(p.matcher("abc123").find());
    }
}

Bir Matcher'ı Sıfırlama

reset(), eşleştiriciyi başlangıca geri sarar; böylece aynı girdiyi yeniden tarayabilirsiniz.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("a").matcher("aaa");
        int first = 0;
        while (m.find()) first++;
        m.reset();
        int second = 0;
        while (m.find()) second++;
        System.out.println(first + " " + second);
    }
}

Bir Matcher'ı Yeni Girdide Yeniden Kullanma

reset(newInput), aynı eşleştirici nesnesini farklı bir dizeyle yeniden kullanır ve yeni bir nesne ayırma ihtiyacını ortadan kaldırır.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("\\d+").matcher("abc");
        m.reset("xyz789");
        System.out.println(m.find());
        System.out.println(m.group());
    }
}

matches ve find Özeti

Niyetinize göre seçim yapın: bir değerin tamamını (örneğin bir ID'nin tamamını) doğrulamak için matches, daha büyük bir metnin içindeki bölümleri çıkarmak veya bulmak için find kullanın.

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern id = Pattern.compile("[A-Z]{2}\\d{4}");
        System.out.println(id.matcher("AB1234").matches());
        System.out.println(id.matcher("id=AB1234;").find());
    }
}

Eşleşmeleri Sayma

Yaygın bir görev, oluşumları saymaktır. find üzerinde döngü kurun ve bir sayaç artırın.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {
    public static void main(String[] args) {
        Matcher m = Pattern.compile("o").matcher("foo boo zoo");
        int count = 0;
        while (m.find()) count++;
        System.out.println(count);
    }
}

Hızlı Kontrol

Girdi dizesinin tamamının desene eşleşmesini hangi yöntem gerektirir?

Özet

Eşleşmeleri buldunuz:

  • matches girdinin tamamını, lookingAt başlangıcını denetler; find ise herhangi bir yerde arama yapar.
  • Tüm eşleşmelerin üzerinden geçmek ve group, start, end değerlerini okumak için find üzerinde döngü kurun.
  • reset başa sarar; reset(input) ise eşleştiriciyi yeni metin üzerinde yeniden kullanır.

Sıkça Sorulan Sorular

“Bulma ve Eşleştirme” dersi ücretsiz mi?

Evet — “Bulma ve Eşleştirme” 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 Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Bulma ve Eşleştirme” dersinde ne öğreneceğim?

matches, find, lookingAt Java 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.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java 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.

“Bulma ve Eşleştirme” 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 Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java 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

  1. Örüntüleri Derleme
  2. Bulma ve Eşleştirme
  3. Yakalama Grupları
  4. Düzenli İfadelerle Değiştirme
← Java Academy Sayfasına Dön