Regular Expression

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
ismailkocacan
Üye
Mesajlar: 88
Kayıt: 25 Eyl 2011 06:11
Konum: İstanbul
İletişim:

Regular Expression

Mesaj gönderen ismailkocacan »

Bilindiği üzere artık delphi de de Regular Expressions kullanabiliyoruz.Bana da ömrü hayatım boyunca bugün kullanmak nasib oldu :mrgreen:
Edite bilgi girerken ;
İlk iki karakteri ÜP ile başlayıp, devamındaki 7 karakterin sayısal olması, tire(-), T1,T2,T3 gibi şeklinde bir giriş olacaktı.
Yani ;
ÜP1234567-T1 (Doğru)
ÜP1234567-T2 (Doğru)
ÜP1234567-T3 (Doğru)

ÜP1234567-T5 (Yanlış) T1,T2,T3 olabilir
KS1234567-T1 (Yanlış) KS ile başlayamaz.
KS1H34567-T1 (Yanlış) 1 den sonra H karakteri var.0 ile 9 arasında bir değer olması lazım.

Bunun için kullandığım RegEx pattren [ÜP]{2})([0-9]{7})[-]([T][1-3]{1} budur.

uses'e RegularExpressions unitini ekleyin.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    if TRegEx.IsMatch(editValue.Text, editPattern.Text) then
      ShowMessage('tamam')
    else
      ShowMessage('olmadı');
  except

    on E: Exception do
      ShowMessage(E.Message);
  end;
end;

Regular Expression kullanarak veri girişlerini kontrol etmek daha kullanışlı gibi geldi bana. Neden derseniz.
ÜP1234567-T1 şeklindeki bir verinin formatını kontrol etmek için.Bir ton takla atmamız gerecekti.Delphi tarafında.
Bir ton ifler,string parçalaması vs.
Kaldıki statik bir yöntem olacaktı.

Ama şimdi [ÜP]{2})([0-9]{7})[-]([T][1-3]{1} şeklindeki bir desen ile kontrol etmek daha kolay.Neden ?
Yarın derselerki ÜP ile başlamasın efendim.Benim bir dediğim,diğer dediğimi tutmaz.Bu Başlarken A ile C arasında değer girilsin derseler.
Sadece [A-C]{2})([0-9]{7})[-]([T][1-3]{1} diye deseni değiştirmesi daha teknik olacaktır.Diye düşünüyorum. :D
Hem deseni istersek harici bir dosyadan da okuma çok pis teknik olacaktır. :D

Ve bu iş hazırlanmış bir web uygulaması : http://gskinner.com/RegExr/
Desen hazırlarken ki karakterlerin anlamları adreste mevcut

Delphi XE ile hazırladığım örnek:
RegExp.rar
Delphi XE RegExp
(86.77 KiB) 173 kere indirildi
Saygılarımla.
İsmail Kocacan
Cevapla