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:
matchesgirdinin tamamını,lookingAtbaşlangıcını denetler;findise herhangi bir yerde arama yapar.- Tüm eşleşmelerin üzerinden geçmek ve
group,start,enddeğerlerini okumak içinfindüzerinde döngü kurun. resetbaş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
- Örüntüleri Derleme
- Bulma ve Eşleştirme
- Yakalama Grupları
- Düzenli İfadelerle Değiştirme