Düzenli İfadeler(Regular Expression)

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:

Karakter Anlamı
. 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|y X 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.
\B karakteri sınırlandırma olmayan durumu belirtir
\d “[0-9]” desenine eşittir.
\D “[^0-9]” desenine eşittir.
\n Yeni satır başlangıcı.
\r Satır başı karakteri.
\s Boşluk. “[ \f\n\r\t\v]” deseniyle eşleşir.
\S “[^ \f\n\r\t\v]”
\t Tab karakter.
\v Dik tab karakter.
\w Herhangi bir kelime ile eşleşir. “[A-Za-z0-9_]” desenine eşittir.
\W Herhangi 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}

 

Bir önceki yazımız olan Visual C# - Rasgele Sayı Üretme başlıklı makalemizde c# ve tips hakkında bilgiler verilmektedir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir