Regular Expressions Nedir ve Nasıl Oluşturulur?

Regular Expression, düzenli ifadeler, belirli kurallarla oluşturulmuş şablon dizisidir. Girilen bir verinin oluşturulan ifade ile eşleşip eşleşmediğini test etmeye yarar. Regex olarak da bilinir.

Bütün programlama dillerinde kullanılabilen, esnek bir yapıdadır.

Regular Expression oluşturmak, okuyabilmek için bazı yapıları anlamamız gerekir.

Temel karakterler

.(Nokta) :Metin içerisindeki herhangi bir karakteri temsil eder. İfadede en fazla bir tane bulunabilir.

Örnek: M.RT  Eşleşenler => MERT,MART Eşleşmeyen =>MAART

+(Artı) :Kendisinden önce gelen karakterden bir veya daha fazla bulunabilir.

Örnek: 9+ Eşleşenler => 9, 99, 999....

*(Yıldız) :Kendisinden önce gelen karakter, ifademizde hiç olmayabilir veya daha fazla bulunabilir.(Zero or more)

Örnek: 4*56  Eşleşenler =>456, 56,4456

? : Opsiyonel anlamına gelir. Kendisinden önce gelen karakterden 0 veya 1 adet bulunabilir. 

Örnek: \d{3}-?\d{3}-?\d{4}: Soru işareti öncesinde gelen tire(-) karakteri, test edilen değerde bulunmayabilir veya bir adet bulunabilir.

Örnek: Mert?Metin: Girilen ifadede t harfi olabilir ya da en fazla bir adet olabilir.
Eşleşenler => MertMetin veya MerMetin

() - Parantez: Girilen ifadeyi gruplamaya yarar. 

[ ] : Köşeli parantez içindeki değerlerden sadece bir tanesi gelecektir. Küme mantığında çalışmaktadır. Aralık veya özel karakter değerleri eklenebilir. 

Örnek: [ea]: Test edilen değer, e veya a harflerinden birisi ile eşleşecektir.

Örnek: [03469]: Test edilen değer, 0,3,4,6,9 sayısından birisi ile eşleşecektir. 

[a1-a2]: Köşeli parantez içindeki a1 ile a2 arasında herhangi bir değer gelebilir.

Örnek: [a-k]:a ile k arasında gelecek bir değeri temsil eder.

{ } :Bu ifade içerisinde belirtilen sayısal değer, kendisinden önceki değerden kaç tane eşleşeceğini belirtir.

Örnek: [0-9]{4} 4 elemanlı 0 ile 9 arasında rakamlardan oluşacak bir ifadeyi temsil eder

{a1,a2}: { } bu alan içerisinde en az a1 en fazla a2 elemanlı bir ifade oluşturacaktır.

Örnek: [a-zA-z]{3,5} en az 3 en fazla 5 elemanlı bir kelime oluşturacak.

^ : ifadenin başlangıcını ifade eder.Aynı zamanda negatif anlamda da kullanırız

Örnek:^M ifade, M ile başlayacaktır.

$ :ifadenin bittiğini ifade eder.

Örnek:M$ ifade, M ile bitti.

| : Veya anlamına gelir.

Örnek:(aa|ba) :aa veya ba gelecektir.

( ) :Parantezi gruplama yapmak için kullanırız.

Karakter sınıfları

Aşağıdaki karakter kısayolları ile bazı ifadeler kısaltılabilir ve aynı anlama gelen ifadeler oluşturulabilir.

\w: Bütün sözcükleri ifade eder. [a-zA-Z_0-9] ifadesi aynı sonucu döndürür.

\W: Sözcük olmayan ifadeleri içerir. [^a-zA-Z_0-9] ifadesi aynı sonucu döndürür.

\s : Boşluk karakteridir.

\d: 0 ile 9 arasında tek haneli bir sayıyı simgeler. [0-9] ifadesi aynı sonucu döndürür.

 \D :Sayı olmayan ifadeleri içerir. [^0-9] ifadesi aynı sonucu döndürür.

\ Escape : Sağına yazdığımız değeri ifadede kullanırız: Örnek \( ifadesinin sonucu ( olacaktır.

Örnekler

Telefon numarası deseni: 0\([0-9]{3}\)-[0-9]{3}-[0-9]{2}-[0-9]{2} Eşleşen ifade: 0232-547-84-86

Tarih deseni: ^\d{1,2}\/\d{1,2}\/\d{4}$  Eşleşen ifade: 04/05/2018

Plaka: ^[0-9]{2}\s[A-Z]{2,3}\s([0-9]){2,4}$ Eşleşen ifade:34 MM 093


Tavsiye Edilen Kaynaklar

http://www.regexlib.com  :RegExLib bir Regular Expressions kütüphanesidir. Oluşturmayı bilmeseniz bile hazır kaynakları burada bulabilir. Siz de oluşturup kütüphaneye ekleyebilirsiniz.

https://regex101.com :Online olarak Regular Expressions ifadeleri oluşturup test edebilirsiniz.




Yorumlar