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.
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.
Ö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.
[ ] : 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ı
[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.
\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
Yorum Gönder