Regex
Regex, bir metin içerisinde geçen genel ifadelerin tanımlanmasını ve bulunmasını sağlayan yazılıma yardımcı araçtır. Metin işleme, veri üretme, bulma gibi işlemlerde kullanılır. Yazılımcıların işlerini kolaylaştıran bir arama bulma aracıdır. Büyük hacimdeki verinin ayrıştırılması, sınıflandırılması gibi saatlerce sürecek işlemleri Regex daha kısa sürede yapılmasına yardımcı olur.
Regex Nedir?
Regex, Türkçeye “düzenli ifadeler” olarak çevrilen “reguler expression” kelimelerinin kısaltılmasından oluşur. Metin içerisinde belirli kalıplar oluşturur ve bu kalıplarla metni manipüle edebilirsiniz. Metin içerisinde geçen düzenli ifadeleri tespit edebilir ve bu ifadelerle ilgili işlemler yapılmasını olanak sağlayabilirsiniz. Tüm programlama dilleri ile uyumludur. Kendine göre syntax yapısı vardır.
Regex Ne İşe Yarar?
Regex, bir veriyi işlemeye, dönüştürmeye, bulmaya yarar. Metin içerisinde benzer yapıda olan kelime, e-posta, sayı gibi unicode karakterleri yakalayıp bir desen oluşturur. Yazılımcı bu desen sayesinde koddaki satır sayısını azaltır. Regex kullanmayı bilen bir geliştirici, string yapıdaki verileri kolaylıkla işler. Regex’in ne işe yaradığına dair bazı örnekleri aşağıda bulabilirsiniz:
- E-posta adresinin girildiği formda e-posta adresi formatını belirleyebilirsiniz. Format içerisinde gmail.com gibi belirli adreslerin yazılmamasını sağlayabilirsiniz.
- Telefon numarası formatı belirleyebilirsiniz.
- İsim girilen alana rakam ve özel karakter girilmesini engelleyebilirsiniz.
- Şifre belirleme standardı oluşturabilirsiniz.
Regex Nasıl Çalışır?
Regex, kendine has bir dili vardır. Bu dil metin işleme, okuma, bulma dilidir. Öncelikle Regex string formatındaki metinlerde çalışır. Regex, meta karakterler ile uygun ifadeyi bulur, kod tarafındaki fonksiyon Regex’in bulduğu ifadeyi işler. Örnek üzerinden anlatacak olursak, sürekli değişen log dosyasını dakikada bir okuyan bir servisiniz olsun. Log dosyasında “warning” kelimesi geçtiğinde size e-posta göndermesi gerekiyor. Uygulamanız dosyadaki “warning” kelimesini Regex ile tespit eder.
Gelin Regex yapısında kullanılan bazı meta karakterlere göz atalım:
- . (Nokta): Herhangi bir karakter. Örneğin; “a.b” ifadesi “a1b” gibi “a” ile “b” arasında herhangi bir karakterin olduğunu ifade eder.
- * (Yıldız): Önceki karakterin hiç geçmiyor, bir kere veya yan yana birden fazla geçiyor olması. Örneğin; “a*b” ifadesi “ab” olabileceği gibi “aab”, “aaab” de olabilir.
- + (Artı): Önceki karakterin bir veya daha fazla yan yana birden fazla geçiyor olması. Örneğin; “a+b” ifadesi “aab” olabileceği gibi “aaab”, “aaaab” de olabilir.
- ? (Soru işareti): Önceki karakterin hiç geçmiyor veya bir kere geçiyor olması. Örneğin; “a?b” ifadesi “ab” ve “aab” ifadelerini kapsar.
- [ ] (Köşeli parantez): Köşeli parantez içerisinde geçen karakterleri içeriyor olması. Örneğin, [13579] ifadesi tek sayıları içeriyor demektir.
- ^ (Şapka işareti): Hariç tutar. Örneğin, [^13579] ifadesi tek sayıları içermiyor demektir.
[a-zA-Z0-9]: ASCII karakterleri ifade eder
Regex’in nasıl çalıştığına bir de uygulamadaki sık kullanılan örnekleri üzerinden bakalım:
E-posta adresi için aşağıdaki Regex kalıbı kullanılır.
^[a-zA-Z0–9._%+-]+@[a-zA-Z0–9.-]+\\.[a-zA-Z]{2,4}$
Telefon numarası için aşağıdaki Regex kalıbı kullanılır.
^(\\+\\d{1,2}[-.\\s]?)?\\(?(\\d{3})\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}$
İsim için aşağıdaki Regex kalıbı kullanılır.
^[A-Z][a-z]+\\s[A-Z][a-z]+$
Online Regex Araçları Nelerdir?
Doğru Regex kalıbını bulmak için internet üzerinden araçlar mevcuttur. Online araçlar sayesinde Regex ifadesini kod tarafında kullanmadan önce test edebilirsiniz, hata varsa tespit edebilirsiniz. Ayrıca Regex ile ilgili dokümanlara ulaşabilirsiniz. Online Regex araçlarından bazıları şunlardır:
- regex101.com
- regexr.com
- regextester.com
Regex, metin içerisinde geçen ifadeleri tespit etmeye, kod tarafında belirli metin kalıpları oluşturmaya yardımcı olur. Saatlerce sürecek işlemlerin kısalmasına sağlar. Bu yönden güçlü bir araç olmasının yanından tüm programlama dilleriyle çalışıyor olmasından dolayı yazılım becerilerini geliştirir.
Ücretsiz eğitimlerimiz seni bekliyor.
Her biri alanında uzman eğitmenler tarafından hazırlanmış eğitimlerimizden sana uygun olanı keşfedip, hemen eğitime başlayabilirsin. Süre kısıtlaması olmayan eğitimlerimizi, hiç bir ücret ödemeden hemen keşfetmeye başla.