Düzenli İfadeler 🐥
Düzenli ifadeler yani "regular expressions" nedir, nasıl kullanılır gibi konuları bu bölümde işleyeceğiz.
Terminoloji - Regex Tam Olarak Nedir?
Regex yani düzenli ifadeler temelde bir katar / metin (string) içerisinde belirli desenleri tanımak için tasarlanmıştır. Temeli matematiksel bir yapıya dayanmaktadır "otomata teorisi" fakat biz bu temele değinmeyeceğiz. Tüm programlama dillerinin zühreviyatında regex - regexp mevcut demek yersiz olmayacaktır. Yazdığımız betikleri, programları tanıyan ve bunları makine diline çeviren yapılar aynı şekilde otomata teorisini ve regex'leri kullanmaktadır.
Regex Kullanım Alanları
Kullanım alanlarına birkaç örnek verelim,
Regex
Adım adım açıklayalım,
^
-> Girdi başlangıcı.[^@\s]
-> Boşluk\s
ve@
karakteri dışındakileri eşleştir.+
-> 1+ kere.@
->@
karakterini eşleştir.[^@\s]+
-> Boşluk\s
ve@
karakteri dışındakileri eşleştir. 1+ kere.\.
->.
karakterini eşleştir.\w{2,6}
-> 2-6 karakter arasında tüm karakterleri eşleştir (sayı, alt çizgi veya harf).$
-> Girdi sonu
Gerçek hayatta karşılaşabileceğiniz senaryolar;
Dilerseniz %99 oranında e-mail eşleşmesini sağlayabileceğiniz onaylı regex'i tercih edebilirsiniz;
Regex sonucunda TLD (top level domain) kontolü - uzantı kontrolü yapmanızı şiddetle tavsiye ederim. abc
uzantılı bir alan adı olmadığı sürece geçersiz bir e-posta olduğunu varsaymalı ve sisteme e-posta onayı ile kişileri almalıyız.
Detaylı regex kaynağı (Türkçe)
Ne Zaman Regex Kullanmamalısın
Yazılım dili tespiti
Kendi hazırladığın yazılım dilini tespit etmek için regex yazmaya hazırlanıyorsan derin bir nefes al, bu senin için acı verici olabilir.
Güvenlikle İlgili Kritik Giriş Filtreleme ve Kara Listeler
Hazırladığın platforma kullanıcının gireceği verilerin kontrolünü regex ile kontrol ediyorsan, olası tüm senaryoları öngördüğüne emin olmalısın. Bu durumlarda regex her zaman en pratik çözüm olmayabilir.
Performans Öncelikli Bölümler
Regex eşleştirme hızı senin hazırladığın desene göre sistemi performans darboğazına sokabilir. Bu, çoğu durumda, özellikle girdi kısa ve kesin ise (e-posta kontrolü) kullanışlı olabilir. Bununla birlikte hazırladığın regex ifadesi zayıf ise sistemine ek yük bindirebileceğini göz önünde bulundurmalısın.
Regex Gerektirmeyen Problemler
Regex katarları işlemek için çok verimli bir araç olsa dahi her zaman kullanmanı gerektirmez. Okunabilir, tekrar yazılabilir, modülarize bir şekilde regex ifadelerini yazmak meşakkatli olacak ise lütfen daha az zahmet gerektiren şekilde problemini çöz, bu seni daha az zeki yapmayacaktır.
Last updated