REGEX – Alt İfadeler
Okuduğunuz yazı, Düzenli İfadeler (Regular Expressions) adlı yazıdizisinin parçasıdır. Eğer giriş yazısını hala okumadıysanız şimdi okuyun, aksi takdirde "Ben neresiyim? Burası kim?" gibi manası bol fakat anlaşılması güç cümleler kurabilirsiniz.
En çok kullanılan metakarakterlerden diğeri; | VEYA anlamına gelir. Küçük L harfiyle karıştırmayın Klavyelerde genelde Alt Gr + Büyük-Küçük işareti olan tuşa tıklayarak yazdığımız karakter bu. Birden fazla düzenli ifadeyi birleştirip tek bir düzenli ifade oluşturmamıza yarıyor. Bu yeni oluşturduğumuz ifade içerisindeki alt ifadelerden herhangi birini karşılıyorsa sonucu listeler.
Makin[ae] örneğimizi hatırlarsınız. Bu örneği şu şekilde yazmak mümkün;Makina|Makine Hatta abartırsak; Makin(a|e) Tabi gerek yok bunlara, ama örnek vermek amacıyla yazıyorum, yoksa bu örnekte bizim kullanmamız gereken düzenli ifade Makin[ae] dir.
Makin(a|e) örneğinde neden parantez kullandığımızı açıklayalım. Eğer parantez kullanmasak bilgisayar bizim Makina ve e metinlerini bulmak istediğimizi sanardı. O yüzden parantez içerisinde yazıyoruz. Çünkü yazıdaki tüm e harflerini listelemek istemeyiz. En azından şimdilik.
Birkaç tane daha örnek verelim;
Yazı içerisindeki tüm 6. Yarışmacı sözcük gruplarını listeleyelim. Eğer yazıyı hazırlayan kişinin her seferinde 6. Yarışmacı dediğinden emin olabilirsek direk 6. Yarışmacı diye arayabiliriz. Fakat biz şüpheci insanlarız, emin olamıyoruz. Belki adam 6. Yarışmacı değilde Altıncı Yarışmacı yazmıştır? Biz hepsini bulmak istiyoruz. Hazırlamamız gereken düzenli ifade;
(Altıncı|6\.)•Yarışmacı
*- Verdiğim örneklerde rahat sayılabilmesi açısından boşluk yerine • yazdığımı unutmayın.
*- 6 dan sonra gelen \ ile nokta karakterini escape ettik. Nokta metakarakterini unutmayın.
İkiden fazla alt ifade kullanabilir miyiz? Tabi ki. Hemen kullanalım. REGEX‘in büyük-küçük harf duyarlı olduÄŸunu hatırlarsınız umarım. Yanı biraz yukardaki regex Altıncı Yarışmacı sözcük gruplarını listelerken altıncı yarışmacı sözcük grubunu listelemez. Biz daha büyük-küçük duyarsız aratmayı öğrenmediÄŸimiz için deÄŸiÅŸik yollardan çözüm bulmalıyız. Mesela;
(Altıncı|altıncı|6\.)•Yarışmacı
İşte böyle. “Yarışmacı kelimesine niye biÅŸi yapmadık? Belki onu da küçük harfle yazmıştır?” diye sorduÄŸunuzu duyar gibiyim, onu da siz yapın canım. Artık gerekli donanıma sahipsiniz.
Ama ben desenimizi bir adım daha ilerletmek istiyorum. Alttaki deseni anlamaya çalışın. Ve şimdilik hoşçakalın!
([Aa]ltıncı|6\.)•Yarışmacı
Benzer Yazılar (bunları bilgisayar seçiyor);
- REGEX – Karakter Sınıfları
Diyelimki bir yazı içerisinde geçen "makina" kelimelerini bulmak istiyorsunuz. Fakat bildiÄŸiniz üzere mak... - REGEX – Nokta Metakarakteri
Åžimdi diyebilirsiniz, "Her metakarakter için yeni yazı yazarsan halimiz nice olur?" diye. Nokta metakarakte... - REGEX – Negatif Karakter Sınıfları
EÄŸer karakter sınıflarında gördüğümüz [...] yerine [^...] kullanırsanız belirlediÄŸiniz kriterlere ... - Düzenli İfadeler (Regular Expressions) Yazı Dizisi – GiriÅŸ
Merhabalar!! Yeni bir yazı dizisine baÅŸlıyorum, sizlere Düzenli İfadeler, bir baÅŸka deyiÅŸle Regular Ex... - REGEX – Satır Başı ve Satır Sonu
REGEX yazı dizimizin ilk bölümünde satır başı ve satır sonu'nu iÅŸleyeceÄŸiz. Muhtemelen anlayabileceÄ...
gayet güzel. teÅŸekkürler…
ancak keşke bu yazı dizisine biraz daha devam etseydiniz. hevesli hevesli okuyorduk ne güzel
orta derece bi php bilgim var. regex konusunada yeni yeni giriÅŸ yapıyorum ve anlatımınız gerçekten çok hoÅŸuma gitti. bi solukta regex’le ilgili tüm yazı dizilerinizi okudum ve anlamamda çok kolay oldu. yazılarınızın devamını bekliyorum..
En son ifadenin
([Aa]|ltıncı|6\.)•Yarışmacı bu şekilde değilde
([Aa]ltıncı|6\.)•Yarışmacı böyle olması gerekmiyor mu?
Regex konusundaki bütün yazıları okudum. Güzel bir seriydi. Teşekkur ederim.
@phonon
Evet, haklısınız. Bir hata olmuş, hemen düzeltiyorum.
Yorumlarınız için teşekkürler.
RegEx dizisine ben de wikipedia’dan ulaÅŸtım. Gerçekten de verimli, sade ve güzel bir anlatım. Örnekleri bulmakta zorlanmanızı çok iyi anlıyorum
Ayrıca yazı dizisi plugini de gayet şık olmuş, sayesinde ben kimim, neredeyim demedim. Teşekkürler.