Düzenli İfade Değişmezleri
Örüntü temelleri
Düzenli İfade Değişmezleri, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 1. 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.
Düzenli İfade Nedir
Bir düzenli ifade, metinle eşleştirme yapmak için kullanılan bir örüntüdür. Ruby'de düzenli ifadeler, Regexp sınıfının birinci sınıf nesneleridir.
Düzenli ifadeleri dizelerin bölümlerini aramak, doğrulamak ve çıkarmak için kullanırsınız.
- Bir sözcüğü, rakamı veya simgeyi eşleştirme
- E-posta adreslerini ve telefon numaralarını doğrulama
- Düzensiz metinlerden parçalar çıkarma
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))Eğik Çizgilerle Düzenli İfade Değişmezleri
Ruby'de düzenli ifade yazmanın en yaygın yolu, ifadeyi iki eğik çizgi arasına almaktır: /pattern/.
Buna düzenli ifade değişmezi denir. Eğik çizgiler arasındaki her şey örüntüdür.
ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))=~ Eşleştirme İşleci
=~ işleci bir dizeyi düzenli ifadeye göre sınar. İlk eşleşmenin indeksini, eşleşme yoksa nil döndürür.
puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)Mantıksal Yanıt için match?
Yalnızca evet veya hayır yanıtına ihtiyacınız olduğunda match? kullanın. true veya false döndürür ve bir MatchData nesnesi oluşturmadığı için daha hızlıdır.
puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))Karakter Sınıfları
Köşeli parantezler içindeki bir karakter sınıfı, bir kümedeki herhangi bir tek karakterle eşleşir.
[abc]a, b veya c karakterlerinden biriyle eşleşir[a-z]herhangi bir küçük harfle eşleşir[0-9]herhangi bir rakamla eşleşir
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))Kısa Gösterimli Sınıflar
Ruby, yaygın karakter sınıfları için kısa gösterimli kaçışlar sağlar:
\dbir rakamı,\Drakam olmayan bir karakteri belirtir\wbir sözcük karakterini belirtir (harfler, rakamlar, alt çizgi)\sboşluk karakterini,\Sboşluk olmayan karakteri belirtir
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))Nokta ve Niceleyiciler
Nokta ., yeni satır dışındaki herhangi bir tek karakterle eşleşir. Niceleyiciler tekrarı denetler:
*sıfır veya daha fazla+bir veya daha fazla?sıfır veya bir{2,4}2 ile 4 kez arasında
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))Dikey Çizgiyle Alternatifler
Dikey çizgi |, OR anlamına gelir. cat|dog örüntüsü iki sözcükten herhangi biriyle eşleşir.
Daha büyük bir örüntünün içindeki alternatifleri gruplandırmak için parantez kullanın.
pet = /cat|dog/
puts(pet.match?('I have a dog'))
puts(pet.match?('I have a fish'))
puts(/^(yes|no)$/.match?('yes'))Büyük-Küçük Harf Duyarsızlığı Bayrağı
Eşleştirmeyi büyük-küçük harfe duyarsız yapmak için kapanış eğik çizgisinin sonuna i bayrağını ekleyin.
Diğer kullanışlı bayraklar arasında m (nokta yeni satırla eşleşir) ve x (genişletilmiş, boşlukları yok sayar) bulunur.
puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))Dizelerden Düzenli İfade Oluşturma
Regexp.new ile çalışma zamanında düzenli ifade oluşturabilirsiniz. Özel karakterler içerebilecek kullanıcı girdilerini güvenle eklemek için Regexp.escape kullanın.
word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))Çapalara Genel Bakış
Çapalar karakterlerle değil, konumlarla eşleşir:
^bir satırın başlangıcı$bir satırın sonu\Adizenin başlangıcı\zdizenin sonu
Bunları daha sonra ayrıntılı olarak inceleyeceksiniz.
puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))Hızlı Kontrol
Bir düzenli ifade bir dizeyle eşleştiğinde =~ işleci ne döndürür?
Özet: Düzenli İfade Değişmezleri
Ruby düzenli ifadelerinin temellerini öğrendiniz:
- Düzenli ifade değişmezleri
/slashes/arasına yazılır =~bir indeks,match?doğru/yanlış döndürür- Karakter sınıfları
[ ]ve kısa gösterimler\d \w \s - Niceleyiciler
* + ? {n,m}ve alternatifler| ibayrağı eşleştirmeyi büyük-küçük harfe duyarsız yapar
Sırada eşleşen parçaları yakalayacaksınız.
puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))Sıkça Sorulan Sorular
“Düzenli İfade Değişmezleri” dersi ücretsiz mi?
Evet — “Düzenli İfade Değişmezleri” 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.
“Düzenli İfade Değişmezleri” dersinde ne öğreneceğim?
Örüntü temelleri 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 1. dersidir.
“Düzenli İfade Değişmezleri” 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