Düzenli İfadeler (Regular Expression) Nedir?

0 558

Düzenli ifadeler Regular Expression ele alınan metinlerdeki kısa yoldan ve esnek bir biçimde karşılaştırma, belli bir bölümünü alma, seçme gibi işlemleri yapabileceğiniz bir yöntemdir. Bir düzenlemeli ifade işleyici, ya ayrıştırıcı üreteci olarak hizmet eden ya da metni inceleyip verilen tarife uygun kısımlarını belirleyen bir programdır.

Bir string dizisinden belirli bir kalıba uyan yeni bir string dizisi oluşturmak için kullanılır. Örneğin;bir web sayfasındaki mail adreslerini elde etmek. Düzenli ifadelerde «System.Text.RegularExpresions» isim uzayı tanımlanır. Düzenli ifadeler (regular expressions) ile bu katara bir kalıp atanır ve bu kalıbın da program içindeki bu katarın bütün eşlenik ifadelerine geri dönmesi sağlanır. Böylece program içinde arama yapma veya yer değiştirme gibi olaylar kolayca yerine getirilebilir. Bunu yerine getirmek için bazi özel karakterler kullanılır. Bu özel karakterler ve anlamları şu şekilde sıralanabilir:

KarakterAnlamı
.Herhangi bir tek karakteri temsil eder.(/n hariç) Örn; “d.neme” ifadesinden “deneme”, “daneme”, “doneme” gibi alt stringler elde edilebilir.
[ ]Bir diziyi yada aralığı temsil eder.  Örn;de[ea]me deseni ile deneme ve dename stringleri elde edilebilir. Ayrıca de[0-9]me deseniyle sayısal aralık belirtirlir.
?Kendinden önceki karakterin string içerisinde olup olmamasını sağlar. Örn; «Mühe?» ifadesi «Müh» yada «Mühe» döndürür.
\-Kendinden sonraki karakteri özel karaktere dönüştürür veya tam tersini yapar. Örn; “n” karakter “\n” yeni satır.-Kendinden sonraki karakterin stringe dahil edilmesini sağlar.«MÜ\H» ifadesi «MÜH» döndürür.
*Kendinden önceki karakterin yada stringin hiç olmaması yada istediği sayıda olmasını sağlar. Örn; “MUH*” deseni “MUHHH” veya “MU” döndürür.
{}Kendinden önce gelen karakterin belirtilen sayıda tekrar edilmesini sağlar.Örn;”MU{2}H” deseni “MUUH” döndürür.
^Satır başını ifade eder. Örn;”^MUH” , satır “MUH” karakterleri ile başlamak zorunda.
$Satır sonunu ifade eder. Örn;”MUH$”  satır “MUH” karakterleriyle bitmek zorunda
+Kendinden önceki karakterin bir yada daha fazla olmasını zorunlu kılar. Örn;”MUH+” deseni  “MUHH”  ile eşleşir ama “MU” ile eşleşmez.
()Tek karaktermiş gibi işlenir.
x|yX veya y den birisiyle eşleşir. Örn; “M|UH” deseni “M” veya “UH” döndürür. “(M|U)H” desenine “MH” veya “UH” uyar.
[A-Z]Herhangi bir büyük harf.
[^A-Z]Herhangi bir büyük harf harici karakter.
[a-z]Herhangi bir küçük harf.
[0-9]Herhangi bir rakam.
\bİfadelenin önündeki ve arkasındaki karakterleri sınır kabul eder.
\Bkarakteri sınırlandırma olmayan durumu belirtir
\d“[0-9]” desenine eşittir.
\D“[^0-9]” desenine eşittir.
\nYeni satır başlangıcı.
\rSatır başı karakteri.
\sBoşluk. “[ \f\n\r\t\v]” deseniyle eşleşir.
\S“[^ \f\n\r\t\v]“
\tTab karakter.
\vDik tab karakter.
\wHerhangi bir kelime ile eşleşir. “[A-Za-z0-9_]” desenine eşittir.
\WHerhangi bir kelime ile eşleşmez. “[^A-Za-z0-9_]” desenine eşittir.

Hazır desen örnekleri:

Desen AdıDesen
IP adres:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
IP adres Grup:\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
URL:((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)
Web Domain :[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)?
HTML Tag:<.[^>]*>
Date :(([0-9])|([0-2][0-9])|([3][0-1]))\/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\/\d{4}
Time:([0-1][0-9]|[2][0-3]):([0-5][0-9])
Email :([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
Guid:^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$
ISBN Number:ISBN\x20(?=.{13}$)\d{1,5}([- ])\d{1,7}\1\d{1,6}\1(\d|X)$
Türk Telefon\d{1}\(\d{3}\)([-\.\s])\d{3}\1\d{2}\1\d{2}

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku