Yakalama Grupları
Eşleşmelerden alt dizeleri çıkarın.
Yakalama Grupları, CoddyKit'te ücretsiz bir Swift 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, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Yakalama Grupları
Bir düzenli ifadedeki parantezler yakalama grupları oluşturur. Her grup, eşleştirdiği alt dizeyi hatırlar; böylece daha büyük bir eşleşmeden yapılandırılmış parçalar çıkarabilirsiniz.
Tek Yakalama
Bir örüntünün bir bölümünü () içine almak, o bölümü yakalar. Eşleşme çıktısı bir demete dönüşür: önce eşleşmenin tamamı, ardından her yakalama gelir.
if let m = "v2".firstMatch(of: /v(\d+)/) {
print("Whole: \(m.0)")
print("Group: \(m.1)")
}Birden Çok Yakalama
Her parantez çifti, soldan sağa sırasıyla çıktı demetine bir öğe daha ekler.
if let m = "2024-05-30".wholeMatch(of: /(\d{4})-(\d{2})-(\d{2})/) {
print("Year: \(m.1)")
print("Month: \(m.2)")
print("Day: \(m.3)")
}Bütün Eşleşme .0'dır
Çıktının .0 öğesi her zaman eşleşen metnin tamamıdır. Yakalamalar .1 ile başlar.
if let m = "key=value".wholeMatch(of: /(\w+)=(\w+)/) {
print("Full: \(m.0)")
print("Key: \(m.1), Value: \(m.2)")
}Yakalamalar Alt Dizelerdir
Varsayılan olarak yakalamalar, özgün dizedeki bir bölümü gösteren Substring değerleridir. Onları saklamanız gerekiyorsa String(...) ile dönüştürün.
if let m = "abc123".firstMatch(of: /([a-z]+)(\d+)/) {
let letters = String(m.1)
let numbers = String(m.2)
print(letters, numbers)
}İsteğe Bağlı Yakalamalar
Bir grup isteğe bağlıysa (? işaretinden sonra geliyorsa), eşleşmeye katılmadığında yakalaması nil olabilir.
if let m = "color".wholeMatch(of: /colou?(r)/) {
print("Captured: \(m.1)")
}Adlandırılmış Yakalamalar
Bir gruba (?<name>...) ile ad verebilir ve ona adlandırılmış çıktı üzerinden erişebilirsiniz; bu, sayısal dizinlerden daha anlaşılırdır.
let re = /(?<area>\d{3})-(?<line>\d{4})/
if let m = "555-1234".wholeMatch(of: re) {
print("Area: \(m.area)")
print("Line: \(m.line)")
}Yakalamalar Üzerinde Yineleme
Birçok eşleşmeden aynı anda yapılandırılmış veri çıkarmak için yakalamaları matches(of:) ile birleştirin.
let log = "a=1 b=2 c=3"
for m in log.matches(of: /(\w+)=(\d+)/) {
print("\(m.1) -> \(m.2)")
}İç İçe Gruplar
Gruplar iç içe olabilir. Dış grup bütünü, iç gruplar parçaları yakalar. Numaralandırma, açılan parantezlerin sırasını izler.
if let m = "12:30".wholeMatch(of: /((\d+):(\d+))/) {
print("All: \(m.1)")
print("H: \(m.2), M: \(m.3)")
}Yakalamayan Gruplar
Yalnızca bir niceleyici için gruplamaya ihtiyaç duyduğunuzda ve fazladan bir demet öğesi istemediğinizde, yakalama yapmadan gruplamak için (?:...) kullanın.
if let m = "abab".wholeMatch(of: /(?:ab)+/) {
print("Matched: \(m.0)")
}Bir Ayrıştırıcı Oluşturma
Yakalamalar ham metni türlendirilmiş değerlere dönüştürür. Burada bir koordinat dizesini tamsayılara ayrıştırıyoruz.
func parsePoint(_ s: String) -> (Int, Int)? {
guard let m = s.wholeMatch(of: /(\d+),(\d+)/),
let x = Int(m.1), let y = Int(m.2) else { return nil }
return (x, y)
}
print(parsePoint("3,7") ?? "nil")Hızlı Kontrol
/(\d{4})-(\d{2})/ örüntüsü "2024-05" ile eşleştiğinde m.2 nedir?
Özet
Parantezler, .0 öğesinin bütün eşleşme, .1, .2... öğelerinin ise yakalamalar olduğu bir demet olarak erişilebilen yakalama grupları oluşturur. Adlandırılmış, isteğe bağlı, iç içe ve yakalamayan grupları gördünüz. Sırada RegexBuilder ile okunabilir Swift kodundan düzenli ifadeler oluşturacaksınız.
Sıkça Sorulan Sorular
“Yakalama Grupları” dersi ücretsiz mi?
Evet — “Yakalama Grupları” 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 Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Yakalama Grupları” dersinde ne öğreneceğim?
Eşleşmelerden alt dizeleri çıkarın. Swift 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.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift 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.
“Yakalama Grupları” 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 Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift 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.