Adlandırılmış Gruplar ve Çapalar
İleri düzey düzenli ifadeler
Adlandırılmış Gruplar ve Çapalar, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 4. 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.
Adlandırılmış Gruplar Neden Kullanılır
Bir örüntü büyüdüğünde m[1] gibi numaralandırılmış yakalamaların okunması zorlaşır. Adlandırılmış gruplar her yakalamaya anlamlı bir etiket verir.
Sözdizimi: (?<name>pattern).
m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])Adlandırılmış Yakalamalara Erişme
Adlandırılmış yakalamalara Sembol veya Dize anahtarıyla erişin: m[:name]. named_captures yöntemi bunların tümünü bir karma tablo olarak döndürür.
m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_captures=~ ile Adlandırılmış Gruplar
Adlandırılmış gruplara sahip bir düzenli ifade değişmezi =~ işleciyle sol tarafta kullanıldığında Ruby, her ad için otomatik olarak yerel değişkenler oluşturur.
if /(?<word>\w+)/ =~ 'hello'
puts word
endÇapalar: Başlangıç ve Son
Çapalar karakterlerle değil, konumlarla eşleşir:
^bir satırın başlangıcı$bir satırın sonu
Bunlar, bir girdinin tamamının eşleştiğini doğrulamak için çok önemlidir.
puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))Dize Çapaları \A ve \z
Çok satırlı dizelerde önemli olan ^ ve $, satır sınırlarıyla eşleşir. Dizenin tamamı için \A (başlangıç) ve \z (tam son) kullanmayı tercih edin.
text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))Tam Girdiyi Doğrulama
Bir dizenin tamamının belirli bir biçime uyduğunu denetlemek için her iki ucu da çapalayın. Böylece fazladan karakter içeren dizeler reddedilir.
zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))Sözcük Sınırları
\b bir sözcük sınırıdır: bir sözcük karakteri ile sözcük karakteri olmayan bir karakter arasındaki konumdur. Karakterleri tüketmeden tam sözcüklerle eşleşir.
puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)İleriye Bakış
Pozitif ileriye bakış (?=...), eşleşmeye dahil etmeden sırada ne geldiğini doğrular. Negatif ileriye bakış (?!...) biçimindedir.
puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))Geriye Bakış
Geriye bakış (?<=...), eşleşmeden önce ne geldiğini doğrular. Negatif geriye bakış (?<!...) biçimindedir.
m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])Yakalamayan Gruplar
Bazen alternatifler veya niceleyiciler için gruplandırmaya ihtiyaç duyarsınız, ancak yakalama istemezsiniz. Yakalamayan grup için (?:...) kullanın.
m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.capturesHepsini Birleştirme
Gerçekçi bir doğrulayıcı, çapaları, adlandırılmış grupları ve niceleyicileri birlikte kullanır.
re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])Hızlı Kontrol
Satır sonlarını yok sayarak dizenin tamamının eşleşmesini sağlamak için hangi çapaları kullanmalısınız?
Özet: Adlandırılmış Gruplar ve Çapalar
Gelişmiş düzenli ifade araçlarında ustalaştınız:
- Adlandırılmış gruplar
(?<name>...)venamed_captures - Çapalar
^ $ \A \z \b - İleriye bakış
(?=)/(?!)ve geriye bakış(?<=)/(?<!) - Yakalamayan gruplar
(?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])Sıkça Sorulan Sorular
“Adlandırılmış Gruplar ve Çapalar” dersi ücretsiz mi?
Evet — “Adlandırılmış Gruplar ve Çapalar” 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.
“Adlandırılmış Gruplar ve Çapalar” dersinde ne öğreneceğim?
İleri düzey düzenli ifadeler 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 4. dersidir.
“Adlandırılmış Gruplar ve Çapalar” 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