REGEX – Negatif Karakter Sınıfları

Pazartesi, 07 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

Eğer karakter sınıflarında gördüğümüz [...] yerine [^...] kullanırsanız belirlediğiniz kriterlere uymayan yerleri listelersiniz. Örneğin [^2-7] regex’i 2 ve 7 arasında olmayan karakterlerle eşleşir. Yani karakter sınıfının başındaki ^ metakarakteri, karakter sınıfının içerisindeki karakterleri istemediğinizi belirtir.

Birkaç yazı önce Regex ile Satır başı ve Satır sonu konusunu işlemiştik. Dikkat ettiyseniz o yazıda ^ metakarakterinin satır başını ifade ettiğini söylemiştik. Şimdi ise karakter sınıfını negatife çevirdiğini söylüyoruz. Bu da demek oluyorki REGEX‘te metakarakterlerin işlevleri kullanıldığı yere göre değişiyor. Tıpkı sesteş sözcükler gibi. Kullanıldığı yere göre değişik anlamlar alabiliyorlar.

Hemen bir örnek verelim ve konuyu pekiştirelim;

Ardından a harfi gelmeyen bilgisayar kelimelerini listeleyelim. Kullanmamız gereken regex desini şöyle olabilir;

bilgisayar[^a]

bilgisayardan gelen ses

bilgisayarı açtık.

bilgisayara baktık

bilgisayar

bilgisayarın içine baktım.

Burada dikkat edilmesi gereken nokta bilgisayar sözcüğünün eşleşmemesi. İlk paragrafı tekrar okuyalım, negatif karakter sınıfı demek “belirtilen karakterlerin bulunmadığı durumları listelemek” demek. Yani bilgisayar kelimesinden sonra gelen harf a değilse listele dedik. Anlaşılması ve anlatıması zor bir mesele, ilk bakışta anlayamayabilirsiniz. Yavaş yavaş oturacaktır kafanızda. bilgisayar kelimesinden sonra bir karakter olması lazım, ama bu karakter a olmamalı dedik.

Lütfen önümüzdeki yazıya kadar kendiniz örnekler oluşturup deneyin.


Paylaş:
  • Facebook
  • FriendFeed
  • Twitter
  • del.icio.us
  • Digg
  • StumbleUpon
  • Technorati
  • LinkedIn
  • MySpace
  • BlinkList
  • Reddit
  • RSS
  • email
  • PDF

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

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