REGEX – Alt İfadeler

PerÅŸembe, 17 Eyl 2009 yorum ekle yorumlara git
X

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.

Bu yazı dizisine ait tüm yazılar

En çok kullanılan metakarakterlerden diğeri; | VEYA anlamına gelir. Küçük L harfiyle karıştırmayın :) Klavyelerde 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.

Birden 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ı az 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.


PaylaÅŸ:
  • Facebook
  • FriendFeed
  • Twitter
  • del.icio.us
  • Digg
  • StumbleUpon
  • Technorati
  • LinkedIn
  • MySpace
  • BlinkList
  • Reddit
  • RSS
  • E-mail this story to a friend!
  • Turn this article into a PDF!

Benzer Yazılar (bunları bilgisayar seçiyor);

Categories: Programlama, Regular Expressions 339 Gösterim
  1. ÅŸimdilik yorum yok.
  1. şimdilik geri bağlantı yok