Eşleştirme ve Yakalama
match ve yakalamalar
Eşleştirme ve Yakalama, CoddyKit'te ücretsiz bir Ruby 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, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.
MatchData Nesneleri
regex.match(string) çağrıldığında Ruby, başarılı olursa bir MatchData nesnesi, başarısız olursa nil döndürür.
MatchData, eşleşen metni ve yakalanan grupları tutar.
m = /world/.match('hello world')
puts m.class
puts(m[0])Tüm Eşleşme: 0. İndeks
Bir MatchData nesnesinin 0 indeksinde, gruplardan bağımsız olarak her zaman eşleşen alt dizenin tamamı bulunur.
m = /\d+/.match('order 4521 shipped')
puts(m[0])
puts(m.to_s)Yakalama Grupları
Parantezler ( ) yakalama grupları oluşturur. Her gruba 1'den başlayan bir numarayla erişebilirsiniz.
m = /(\d{4})-(\d{2})/.match('2026-05')
puts(m[1])
puts(m[2])captures Yöntemi
captures, 0. indeksteki tüm eşleşme hariç, yakalanan tüm gruplardan oluşan bir dizi döndürür.
m = /(\w+)@(\w+)/.match('alice@example')
p m.capturesYakalamaları Yapıdan Çıkarma
captures bir dizi döndürdüğü için sonucu doğrudan değişkenlere yapıdan çıkarabilirsiniz.
user, host = /(\w+)@(\w+)/.match('bob@server').captures
puts user
puts hostEşleşme Öncesi ve Sonrası
MatchData, eşleşmenin çevresindeki metin için yardımcı yöntemler sunar:
pre_matchöncesindeki bölümpost_matchsonrasındaki bölüm
m = /\d+/.match('abc123xyz')
puts(m.pre_match)
puts(m.post_match)Tüm Eşleşmeler için scan
String#scan, yalnızca ilk eşleşmeyi değil, dizedeki her eşleşmeyi içeren bir dizi döndürür.
nums = '12 cats, 8 dogs, 3 birds'.scan(/\d+/)
p numsGruplarla scan
Örüntünüzde gruplar varsa scan, her eşleşme için bir tane olmak üzere, her biri o eşleşmenin yakalamalarını içeren dizi dizisi döndürür.
pairs = 'a=1 b=2 c=3'.scan(/(\w)=(\d)/)
p pairsnil Değerini Güvenle İşleme
Hiçbir şey eşleşmediğinde match yönteminin nil döndürdüğünü her zaman unutmayın. Sonucu kullanmadan önce bunu denetleyin.
m = /(\d+)/.match('no digits here')
if m
puts m[1]
else
puts 'no match found'
endÖzel Değişkenler
Başarılı bir eşleşmeden sonra Ruby, genel değişkenleri ayarlar: $~ MatchData nesnesidir; $1 ve $2 ise numaralandırılmış yakalamalardır.
Bunlar kısa betiklerde kullanışlıdır, ancak gerçek kodda açıkça MatchData kullanmak daha anlaşılırdır.
if 'name: Alice' =~ /name: (\w+)/
puts $1
endTarih Çıkarma
Grupları ve yakalamaları birleştirerek yapılandırılmış verileri tek adımda bir dizeden çıkarın.
year, month, day = /(\d{4})-(\d{2})-(\d{2})/.match('2026-05-29').captures
puts "Year #{year}, Month #{month}, Day #{day}"Hızlı Kontrol
'a=1 b=2'.scan(/(\w)=(\d)/) verildiğinde, sonucun yapısı nedir?
Özet: Eşleştirme ve Yakalama
Artık eşleşmelerden veri çıkarabilirsiniz:
matchMatchData veya boş değer döndürür- 0. indeks tüm eşleşmedir, 1 ve üzeri indeksler gruplardır
capturestüm grupları bir dizi olarak döndürürscandizedeki her eşleşmeyi bulurnildeğerini her zaman denetleyin
p 'x1 y2 z3'.scan(/([a-z])(\d)/)Sıkça Sorulan Sorular
“Eşleştirme ve Yakalama” dersi ücretsiz mi?
Evet — “Eşleştirme ve Yakalama” 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 Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.
“Eşleştirme ve Yakalama” dersinde ne öğreneceğim?
match ve yakalamalar Ruby 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.
Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Ruby 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.
“Eşleştirme ve Yakalama” 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 Ruby Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Ruby 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
- Düzenli İfade Değişmezleri
- Eşleştirme ve Yakalama
- Yerine Koyma
- Adlandırılmış Gruplar ve Çapalar