Alfabetik Sıralama :ABCDEFGHIJKLMNOPQRSTUVWXYZ -


Reguler Expressions türkçesiyle düzenli ifadeler ASP´de hakkında en az şey bilienen ama o kadar da merak edilen bir konudur. Merak edilir çünkü bu konuda internette türkçe kaynak bulmak çok zordur. Bende bu açığı kaptmak için bu konuyu işlemeye karar verdim. Reguler Expressions (bundan sonra kısaca RegExp diyeceğiz) aslolarak vereceğimiz bir string içinde yine vereceğimiz bir stringi yada deseni aramaya yarar. Ve arama sonuçlarını bir Matches nesnesine atar. Siz daha sonra bu arama sonuçlarıyla işlem yapabilirsiniz. Önce açıklamalı bir örnek verelim. Daha sonrada RegExp nesnesini incelemeye başlayalım.

<%
´Değişkenlerimizi tanımlıyoruz.
Dim nRegExp,nMatches

´Yeni bir RegExp nesnesi oluşturuyoruz.
           Set nRegExp = New RegExp

´Aranacak desenimizi belirliyoruz.
            nRegExp.Pattern = "aranacak kelime"

´Küçük büyük harf duyarlılığını belirliyoruz.
            nRegExp.IgnoreCase = True

´Arama yöntemimizi belirliyoruz.
            nRegExp.Global = True

´Arama olayımızı çalıştırıp sonuçları bir Matches nesnesine atıyoruz.
            Set nMatches = nRegExp.Execute("içinde arama yapılacak string")

´Arama sonuçları ile ilgili işlemlerimizi yapıyoruz.
           i = 1
           For Each nMatch in nMatches
                  Response.Write "Arama sonuçlarında "  & i & ". sonuç baştan " & nMatch.FirstIndex & " harften başlıyor.<br>"
                   i = i + 1
           Next
%>

 RegExp Özellikleri

  • Global
    Boolean bir değer alır ve aramanın nasıl yapılacağını belirler. True yada False değeri alır. Eğer True olursa string içinde ki tüm uyumlar aranır.False olursa sadece ilk uyum aranır. Doğal olarak geriye tek bir sonuç döner.

  • IgnoreCase
    Aramada küçük büyük harf duyarlılığını belirler. True yada False değeri alır. True olursa aramada küçük büyük harf uyumu gözetilmez. False olursa küçük büyük harf uyumu gözetilir.

  • Pattern
    RegExp´in verilen string içinde arayacağı deseni belirler. Bu desen bir yada daha çok harf yada sayıdan oluşan bir kelime yada cümle olabilir. Veya en sonda pattern tanımlama bölümünde de işleyeceğimiz gibi karmaşık yapıdan oluşan bir arama deseni de olabilir.

    <% nRegExp.Pattern = "(www|http://|ftp|file://)S+" %>

    <% nRegExp.Pattern = "(www|http://|ftp|file://)S+" %>gibi. Bu konuyu en sona bırakıp geçiyoruz.

    RegExp Metodları

  • Execute

    Aramayı yürütmeye ve sonuçları her bir sonuç için bir match nesnesi oluşturup bunları bir matches koleksiyonuna eklemeye yarar. Nasıl kullanıldığını örneğimizde gördünüz.

  • Replace
    Aramada bulunan texti yer değiştirmek için kullanılır. Açıkcası kitaplarda böyle yazmasına rağmen nasıl kullanıldığına dair henüz bir örnek bulamadım.

    <% nRegExp.Replace(String1,String2) %> şeklinde kullanılıyormuş.

  • Test
    Arama yapıp sonuçlarını bir matches nesnesine atamadan önce stringimiz içinde desenimizin olup olmadığını sınar. Yani bir nevi arama yapar ama sonuçları matches nesnesine atmaz. Sadece eğer aranan desen string içinde varsa True yoksa False değeri döndürür.

    <% Sonuc = nRegExp.Test("içinde arama yapılacak string") %>

    <% Sonuc = nRegExp.Test("içinde arama yapılacak string") %>Eğer aranan desen string içinde varsa Sonuc değeri True, yoksa False olarak döner. Bunu nasıl kullanabilirsiniz. Mesela bir email adresi deseni tanımlayıp eğer sonuç true dönüyorsa email adresini doğru kabul eder. Değilse kullanıcıya bu mail adresinin geçersiz olduğunu bildirirsiniz. RegExp ile ilgili gerekli bilgiyi aldıktan sonra şimdi de arama sonuçlarını nasıl değerlendirebileceğimizi görelim.


    Match ve Matches Nesneleri


    Matches nesnesi aslında match nesnelerinin bir koleksiyonudur. Bir yada daha fazla matches nesnesini içinde bulundurur. Bir matches koleksiyonu daha doğrusu match nesneleri RegExp´in execute metoduyla oluşturulur. Bir match nesnesi bulunan her bir arama sonucunu bulundurur.


    Matches Nesnesi Özellikleri

  • Count

    Toplam kaç tane arama sonucu olduğunu bize bildirir.

    <%
    Function RegEx(desen,MyString)
           Dim nRegExp
           Set nRegExp = New RegExp
           nRegExp.Pattern = desen
           nRegExp.IgnoreCase = True
           nRegExp.Global = True
           Set nMatches = nRegExp.Execute(MyString)
           RegEx = nMatches.Count
    End Function

    Response.Write RegEx("a","arama arama bende akıl arama")
    %>

    <% Function RegEx(desen,MyString) Dim nRegExp Set nRegExp = New RegExp nRegExp.Pattern = desen nRegExp.IgnoreCase = True nRegExp.Global = True Set nMatches = nRegExp.Execute(MyString) RegEx = nMatches.Count End Function Response.Write RegEx("a","arama arama bende akıl arama") %>Bize 10 değerini döndürür. Çünkü aradığımız "a" harfi "arama arama bende akıl arama" stringi içinde 10 tane bulunuyor.

  • Item
    Matches koleksiyonundan anahtarı verilen arama sonucunu bize getirir. Yada anahtarı verilen maddeye yeni değer atanabilir.

    <% deger = nMatches.Item(i) %>

    <% deger = nMatches.Item(i) %>i yukarda ki örneğimize göre 0 ile 9 arası bir tam sayı olabilir. 10 tane sonucumuz var neden 9´a kadar derseniz bildiğiniz gibi dizilerde eleman sayısı 0´dan başlar. Ve yine yukarda ki örneğimize göre tüm Item değerleri bize "a" sonucunu döndürecektir. Çünkü aradığımız desen basit ve sadece "a" harfini arıyoruz. Dolayısıyla tüm arama sonuçları bize "a" olarak dönecektir. Eğer kompleks bir desen ifade etseydik bu Item değerleri değişirdi. Kompleks bir desen nasıl ifade edilir en sonda.


    Match Nesnesi Özellikleri


    <% Dim nRegExp,nMatches Set nRegExp = New RegExp nRegExp.Pattern = "aranacak kelime" nRegExp.IgnoreCase = True nRegExp.Global = True Set nMatches = nRegExp.Execute("içinde arama yapılacak string") i = 1 For Each nMatch In nMatches Response.Write "Arama sonuçlarında " & i & ". sonuç baştan " & nMatch.FirstIndex & " harften başlıyor." Response.Write "Uzunluğu " & nMatch.Length & " karakter." Response.Write "Sonuç değeri " & nMatch.Value Response.Write "
    " i = i + 1 Next %><%
        Dim nRegExp,nMatches
        Set nRegExp = New RegExp
        nRegExp.Pattern = "aranacak kelime"
        nRegExp.IgnoreCase = True
        nRegExp.Global = True
        Set nMatches = nRegExp.Execute("içinde arama yapılacak string")

        i = 1
        For Each nMatch In nMatches
                  Response.Write "Arama sonuçlarında "  & i & ". sonuç baştan " & nMatch.FirstIndex & " harften başlıyor."
                  Response.Write "Uzunluğu " & nMatch.Length & " karakter."
                  Response.Write "Sonuç değeri " & nMatch.Value
                  Response.Write "<br>"
        i = i + 1
        Next
    %>

    Match nesnesi bulunan arama sonucudur. Ve aşağıda ki özellikleri bulunur.

  • FirstIndex
    Arama sonucunun baştan kaçıncı karakterden başladığını verir. Soldan ilk karakter 0´dan başlar.

    <%=nMatch.FirstIndex%>

     <%=nMatch.FirstIndex%>
  • Length
    Arama sonucunun text uzunluğunu döndürür. Yukarda sadece "a" harfini aradığımız örnekte tüm length değerleri 1 olur.Ancak kompleks desen tanımlamalarında bu değer her arama sonucu için değişebilir.

    <%=nMatch.Length%>

    <%=nMatch.Length%>
  • Value

    Arama sonucunun değerini döndürür. Aslında arama sonuç değeri için nMatch.Value demek çokta gerekli değildir. nMatch.Value yerine sadece nMatch demenizde size arama sonuç değerini verir. Yukarda ki örneğe göre

    <% Response.Write "Sonuç değeri " & nMatch.Value %>
    ile
    <% Response.Write "Sonuç değeri " & nMatch %>

    <% Response.Write "Sonuç değeri " & nMatch %>aynı kapıya çıkar.

     

    RegExp´de Pattern Tanımlama

    5,7 gibi bir sayıyı RegExp ile aşağıdaki gibi ifade ederiz.

    /d*.d+/

    Düzenli ifadeler / ile başlayıp / ile biter

    d ==> 0 ile 9 arası bir rakamı gösterir.
    * ==> 0 veya daha fazla demektir.
    . ==> . (nokta) manasındadır.
    + ==> 1 veya daha fazla demektir.

    Desenler
    -----------------------
    Desen bir karakter dizilimi için oluşturulan sınama kriterleridir. Yukardaki /d*.d+/   5,7 için oluşturulmuş  bir desendir.

    Değiştiriciler
    -----------------------
    Arama için desenlere eklenebilecek bazı değiştiriciler bulunur. Bu değiştiriciler sondaki / işaretinden sonra yazılırlar. Mesela /metin/ desenini bir string içinde arayacakken aşağıdaki değiştiricileri ekleyerek arama seçeneklerini artırabiliriz.

    /metin/g ==> Genel uyum(yazıldığı gibi)
    /metin/i ==> Küçük büyük harf duyarsız
    /metin/m ==> Dizilim içinde çoklu karşılaştırmalar için $ ve ^ özel karakterlerine izin verir
    /metin/s ==> Satırbaşı (newine) karşılaştırmaları için . özel karakterine izin verir
    /metin/x ==> Desendeki beyaz boşlukları (whitespaces) göz ardı eder.

    Birden çok değiştirici birbirini / işaretleri ile izleyebilir.

    /metin/m/i/s

    Meta karakterler
    ------------------------
    Meta karakterler işaretinden sonra gelen ve deseni tanımlarken bize seçenek sağlayan özel karakterlerdir.

    s Sekme veya satırbaşı gibi beyaz boşluklar (whitespaces)
    S  Beyaz boşluklar dışındaki tüm karakterler
      Sözcük bağlayıcısı
    B  Sözcük olmayan bağlayıcılar
    d  0-9 arasındaki bir rakam
    D  Sayısal olmayan karakterler
    w  Harfler, rakamlar veya altçizgi
    W  Harf, rakam veya altçizgi dışındaki tüm karakterler
    A  Bir karakter diziliminin başı
      Bir karakter diziliminin sonu

    Özel Karakterler
    -------------------------
    Meta karakterler gibi bize desenimizi tanımlamamızda süzme görevi sağlayan özel karakterlerdir. / işaretinden sonra gelmezler.

    * Önünde bulunan karakterin sıfır veya daha çok tekrarlanacağını ifade eder.
    + Önünde bulunan karakterin bir veya daha çok tekrarlanacağını ifade eder.
    ? Herhangi bir karakterin sıfır veya daha çok tekrarlanacağını ifade eder.
    . Satırbaşı (newline) karakteri hariç herhangi bir karakteri ifade eder.
    ^ A meta-karakteri gibi bir karakter diziliminin başını gösterir.
    $  meta-karakteri gibi bir karakter diziliminin sonunu gösterir.

    Burda görüldüğü gibi * , + , ? , . , ^ , $ işaretlerini kendi manalarında yani özel karakter olarak değilde mesela . ´yı  nokta olarak ifade etmek için önüne ters bölü() konmalıdır.

    Bu son Pattern tanımlama bölümünü <a href="http://activez.cu.edu.tr/content/cyberspace/aspplus/RegExpression.aspx" target="_blank">http://activez.cu.edu.tr/content/cyberspace/aspplus/RegExpression.aspx</a> adresinden aldım. Biraz karışık olabilir.

  • (findikkurdu.com)



    Konu: Regular Expressions (Düzenli İfadeler)
     
    Okunma Sayısı : 260
    Eklenme Tarihi : 31 Ocak 2007, Çarşamba
    SONRAKI BILGI : Java Script Sayfa Nesnesi   
    Forum Linki:
    Aranan Kelime:
     

    En Yeni Bilgiler


     ISS PWS DB`Ye Yazma Okuma izni verme ISS PWS DB`Ye Yazma Okuma izni verme
     FSO ile Upload FSO ile Upload
     Rastgele şifre üretmek Rastgele şifre üretmek
     ASP - Boşluksuz(Space) Uzun Kelimeleri Bölme ASP - Boşluksuz(Space) Uzun Kelimeleri Bölme
     ASP ile Base64 Şifreleme ASP ile Base64 Şifreleme
     ASP ile Base64 Şifre Çözme ASP ile Base64 Şifre Çözme
     Tüm harfleri büyütme, küçültme ve kelimelerin ilk harflerini büyütme Tüm harfleri büyütme, küçültme ve kelimelerin ilk harflerini büyütme
     Mailleri bölerek göndermek Mailleri bölerek göndermek
     Türkçe karakterleri ingilizce karşılıklarına çevirmek Türkçe karakterleri ingilizce karşılıklarına çevirmek
     Hata sayfası(404) ile link yönetimi Hata sayfası(404) ile link yönetimi
     Mail okundu bilgisi Mail okundu bilgisi
     Online üyeler Online üyeler
     Önceki sonraki linki Önceki sonraki linki
     ASP ile Web Programcılığı ASP ile Web Programcılığı
     ASP de diziler , dizi değişkenler ASP de diziler , dizi değişkenler
     ASP - Operatörler ASP - Operatörler
     ASP ile MySQL verilerini sayfalama ASP ile MySQL verilerini sayfalama
     ASP ile MS Access verilerini sayfalama ASP ile MS Access verilerini sayfalama
     ADO - Giriş (Bölüm 1 ADO - Giriş (Bölüm 1
     ADO - Connection (Bölüm 2) ADO - Connection (Bölüm 2)
     ASP ile Online Radyo Hizmetine Giriş ASP ile Online Radyo Hizmetine Giriş
     ASP dosyalarını DLL´ye çevirme ASP dosyalarını DLL´ye çevirme
     HTTP 500.100 hatalarına hükmedin HTTP 500.100 hatalarına hükmedin
     ASP ve VBScript nedir? ASP ve VBScript nedir?
     VBScriptte Veri Tipleri VBScriptte Veri Tipleri
     VBScriptte değişkenler ve sabitler VBScriptte değişkenler ve sabitler
     VBScriptte Dictionary Nesnesi VBScriptte Dictionary Nesnesi
     Regular Expressions (Düzenli İfadeler) Regular Expressions (Düzenli İfadeler)
     Şartlı ifadeler Şartlı ifadeler
     Persist Bileşeni ile Email formu Persist Bileşeni ile Email formu
     Vertabanından 2-3-4`erli sıralama Vertabanından 2-3-4`erli sıralama
     Arama Motoru yapmak Arama Motoru yapmak
     Jmail bileşeni ile mail formu Jmail bileşeni ile mail formu
     ASP`ye giriş ASP`ye giriş
     Değiskenler Değiskenler
     ASP başlangıç ASP başlangıç
     Arama Motoru Arama Motoru
     Form bilgileri Form bilgileri
     Veritabanı, kayıt ve silme işlemleri Veritabanı, kayıt ve silme işlemleri
     Veritabanına bağlanmak ve veri almak Veritabanına bağlanmak ve veri almak
     Veritabanı oluşturma Veritabanı oluşturma
     Querystring Querystring
     Mailllist yapımı Mailllist yapımı
     Kayıtları Sayfalara bölmek Kayıtları Sayfalara bölmek
     Sub kullanımı Sub kullanımı
     Ziyaretçi`nin IP Numarasını almak Ziyaretçi`nin IP Numarasını almak
     Sayfaya şifre koymak Sayfaya şifre koymak
     Online kişi sayısı Online kişi sayısı
     Kategorili Sistem Kategorili Sistem
     Tarihler arası veri seçtirmek. Tarihler arası veri seçtirmek.
     GET Yöntemi ile İşlemler GET Yöntemi ile İşlemler
     POST Yöntemi ıle ışlemler POST Yöntemi ıle ışlemler
     ASP`de Güvenlik Önlemleri ASP`de Güvenlik Önlemleri
     Cdonts ile mail formu Cdonts ile mail formu
     FSO ile log tutmak FSO ile log tutmak
     ASPUpload bileşeni ASPUpload bileşeni
     Sunucu Değişkenleri Sunucu Değişkenleri
     Alışveriş ve Sepet Yapımı Alışveriş ve Sepet Yapımı
     Flood koruması Flood koruması
     Sayfaları şifreleme(ENCODE) Sayfaları şifreleme(ENCODE)
     SPLIT Kullanımı SPLIT Kullanımı
     YTL Güncellemesi YTL Güncellemesi
     Tarih ve Saat Fonksiyonları Tarih ve Saat Fonksiyonları
     Döngüler Döngüler
     XMLHTTP XMLHTTP
     NTVMSNBC.COM Haberleri NTVMSNBC.COM Haberleri
     IIS Ayarları 2 IIS Ayarları 2
     ASP Tear ASP Tear
     Rastgele Veri Rastgele Veri
     ASP Jpeg ASP Jpeg
     SQL Komutları SQL Komutları
     Array Nesnesi Array Nesnesi
     If...else ıfadesi If...else ıfadesi
     Tavsiyet Et Tavsiyet Et
     Birden Fazla Alanadı Desteği Birden Fazla Alanadı Desteği
     Online Üyeler Online Üyeler
     Güvenlik Kodu Güvenlik Kodu
     MS SQL Server - 2 MS SQL Server - 2
     MS SQL Server - 1 MS SQL Server - 1
     MS SQL Server - 3 MS SQL Server - 3
     XMLHTTP ile döviz Kurları XMLHTTP ile döviz Kurları
     TL`yi YTL olarak Yazdırmak TL`yi YTL olarak Yazdırmak
     YTL`yi TL olarak Yazdırmak, YTL`yi TL olarak Yazdırmak,
     Dönüşümlü Banner Sistemi Dönüşümlü Banner Sistemi
     IP Filtresi IP Filtresi
     MySmartUpload Bileşeni MySmartUpload Bileşeni
     SQL İle İşlemler SQL İle İşlemler
     Cookie(Çerez) Kullanımı Cookie(Çerez) Kullanımı
     ASP ile Mail gönderme. ASP ile Mail gönderme.
     SQL - Yapısal Sorgu Dili 1 SQL - Yapısal Sorgu Dili 1
     MS SQL Server - 4 MS SQL Server - 4
     Klasör Şeklinde Linkler(404 Yönetimi) Klasör Şeklinde Linkler(404 Yönetimi)
     Http`leri Link Yapmak Http`leri Link Yapmak
     Cookie`s (Çerezler) Cookie`s (Çerezler)
     Renkli Tablolar Renkli Tablolar
     Windows XP`de SMTP Kurulumu Windows XP`de SMTP Kurulumu
     Err Nesnesi Kullanımı Err Nesnesi Kullanımı
     MS SQL Server - 5 MS SQL Server - 5
     Daha Performanslı Kodlar Daha Performanslı Kodlar
     Jmail ile Şifreleme Jmail ile Şifreleme
     Karakter Temizleme Karakter Temizleme
     Sınırsız Kategori Sistemi Sınırsız Kategori Sistemi
     Makale Sayfalama Makale Sayfalama
     IIS Kurulumu ve Yazma İzni IIS Kurulumu ve Yazma İzni
     Geçen Zaman Gösterimi Geçen Zaman Gösterimi
     Include Yöntemleri Include Yöntemleri
     E-Mail adresi kontrolü E-Mail adresi kontrolü
     Açılır Kutu(DropDown) yapımı Açılır Kutu(DropDown) yapımı
     FSO ile Listeleme FSO ile Listeleme
     Tarih Format`ı Tarih Format`ı
     XmlHTTP Türkçe Karakter Problemi XmlHTTP Türkçe Karakter Problemi
     Bileşen Kurulumu Bileşen Kurulumu
     Stored Procedure - MSSQL Stored Procedure - MSSQL
     Ntvmsnbc Haberleri (XmlHTTP) Ntvmsnbc Haberleri (XmlHTTP)
     Tarih Biçimleri Tarih Biçimleri
     Stored Procedure Değişkenler Stored Procedure Değişkenler
     Fonksiyon(Function) Kullanımı Fonksiyon(Function) Kullanımı
     Tablolu Yanyana Sıralama Tablolu Yanyana Sıralama
     Puan sistemi Puan sistemi
     Access`ten MSSQL`e Access`ten MSSQL`e
     SQL Distinct Kullanımı SQL Distinct Kullanımı
     Değer Fonksiyonları Değer Fonksiyonları
     Türkçe karakter kontrol Türkçe karakter kontrol
     ASP Class(Sınıf) Kullanımı ASP Class(Sınıf) Kullanımı
     Üyelik Sistemi Yapımı Üyelik Sistemi Yapımı
     IIS Şifresi Koymak IIS Şifresi Koymak
     Operatörler: Operatörler:
     RSS Sayfası Yapımı RSS Sayfası Yapımı
     Veritabanı Tablo İşlemleri Veritabanı Tablo İşlemleri
     

     

     

    Copyright © 2008 Temha.neT