Merhabalar bu blog yazımda regex kullanımından bahsedeceğim.
Regex yani regular expression, belirlemiş olduğunuz patterne uygun ifadeleri, girdi olarak verdiğiniz text içerisinde aramaya, bir veya daha fazla eşlenenleri çıkarmaya yarar.
emrah$ -> $ ifadesi biten metinler için kullanılır. Burada emrah ile biten textleri eşleştirir.
emrah* -> * ifadesi * dan önceki karakterden 0 veya daha fazla içeren textleri eşleştirmek için kullanılır. Burada emra ile başlayıp h harfinin artarda 0 veya daha geçtiği textleri eşleştirir.
^emrah -> ^ ifadesi başlayan metinleri yakalamak için kullanılır. Burada emrah ile başlayan textler yakalanır.
emrah? -> ? karakteri kendisinden önceki karakterden 0 veya 1 kez geçen
metinleri yakalamak için kullanılır.
emrah+ -> + karakteri kendisinden önceki karakterden 1 veya daha fazla kez geçen metinleri yakalamak için kullanılır.
emrah{2} -> {2} ifadesi kendisinden önceki karakterden 2 tane olan metinleri yakalamak için kullanılır.
emrah{2,} -> {2,} ifadesi kendisinden önceki karakterden 2 veya daha fazla olan metinleri yakalamak için kullanılır.
emrah{2,5} -> {2,5} ifadesi kendisinden önceki karakterden artarda 2’den 5′ kadar geçen metinleri yakalamak için kullanılır.
emr(ah){2} -> {2} ifadesi kendisinden önceki parantez içindeki ifadelerden 2 tane olan metinleri yakalamak için kullanılır.
[a-zA-Z] -> a ile z veya A ile Z arasındaki tüm harflerden en az bir tanesini içermesini bekler.
[^a-zA-Z] -> a ile z veya A ile Z arasındaki harfler harici karakterlerden bir tanesini içermesini bekler.
\D-> Rakam olmayan karakterleri eşleştirmek için kullanılır.
\d -> digit yani rakamları eşleştirmek için kullanılır.
\d{5} -> Burada 5 rakamlı girilen sayıyı eşleştirir.
\d{1,5} -> 1 rakamdan 5 rakama kadar girilen rakamlardan oluşan sayıyı eşleştirir.
E-Posta Geçerlilik Regexi İnceleyelim.
E-Posta Regex -> ^\w+([-+.’]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
Test E-Posta Adresi -> emrah.4+kahra-man@de-neme.com
Yukarıdaki satırda bulunan regex ifadesini soldan sağa doğru yorumluyoruz.
^ ifadesi başlamalı diyor peki eposta adresi ne ile başlamalı \w ile başlamalı yani a-z, A-Z, 0-9 veya _ karakterlerinden biriyle başlamalı. Ardından + karakteri olduğu için \w için geçerli olan karakterlerden 1 veya daha fazla olabilir demektir. Şimdiye kadar yazdığımız regex ile test e-posta adresindeki emrah kısmını geçerli saydık. Regexin devamında bir parantez var. Parantezin içinde ilk olarak [-+.’] ifadesi var bu ifade ilk kısımdan (emrah) sonra -+.’ karakterlerinden bir tanesinin gelebileceğini ama ardındanki \w ifadesinden de anlayacağımız üzere mutlaka a-z, A-Z, 0-9 veya _ ile bitmesi gerektiğini söylüyor ve bu kısmın parantezi kapatmadan önce yazılan + işaretinden a-z, A-Z, 0-9 ifadelerinden 0 veya daha fazla kez olabileceğini anlatıyor ve test e-posta adresindeki .4, +ka, ‘hra, -man ifadelerinin yakalanmasını sağlıyor. Parantezden sonraki * ise .4, +ka, ‘hra, -man ifadelerinin tamamının geçerli bir text olduğunu ifade ediyor. @ karakterinden sonraki \w+ ifadesi a-z, A-Z, 0-9 ifadelerinden 1 veya daha fazla kez gelebileceğini anlatıyor, test e-posta adresindeki de kısmını bu ifade ile yakalıyoruz. ([-.]\w+) ifadesi ile -neme kısmını yakalıyoruz. . ile zaten .com’un . noktasını yakaladık. Son bölümdeki \w+([-.]\w+) ifadesi önceki bölümde zaten anlatmıştık buradaki fark * ve $ ile bitmesi bu karakterler * bu kısmın defalarca olacağini $ ile bu kısım ile eposta adresinin bitmesi gerektiğini ifade ediyor.