Merhaba arkadaşlar bu dersimizde PHP dili içinde Regex kullanımı(Düzenli İfadeler) ile ilgili örnekler vereceğiz.Regex » Regular expression. Birçok programlama dilinde, bir metin içinde belirli kurallara uyan bölümleri bulmak için kullanılan bir dildir ve birçok programlama dilinde karşınıza çıkacak bir konu.Burada anlatıldıktan sonra diğer dillerde kullanım mantığı aşağı yukarı aynı olacaktır.

PHP’de preg_match fonksiyonu kullanarak, yazdığımız bir ifadenin diğer içerikle eşleşmesini kontrol edebiliyoruz. Aşağıda ki kullanımda preg_match fonksiyonu iki parametre alacak ilk parametremiz pattern(desen) ikinci parametremiz ise content(içerik) olacak. Yani şu şekilde preg_match($pattern,$content);.Sonuç True ya da false olarak dönecek.Ayrıca dikkat etmemiz gereken bir konu daha var: Pattern dediğimiz ifademizin başında ve sonunda slash(/) işareti bulunur yani Regex desenleri iki “/” (slash) işaretinin arasına yazılır.
Aşağıda preg_match kullanımına bakalım:

Pattern Açıklama Eşleşen Eşleşmeyen
'/e/' İçeriğinde küçük e harfi bulunan ifadeler demektir. geldi,
deniyorum,
verdim
almalıyım,
yoruldum,
doydun mu?
'/E/' İçeriğinde büyük E harfi bulunan ifadeler TELEVİZYON,
DEFTER,
Elek
elma,
denizli,
Londra,
kağıt
'/e/i' slash “/” işaretinden sonra kullanılan “i” harfi büyük küçük harf duyarlılığını kaldırır. İçeriğinde (büyük-küçük fark etmez) e veya E harfi bulunan ifadeler demektir. Etek,
Eski,
erik
Ali,
ayva,
fil,
kullanmalıyım
'/cek/i' İçeriğinde (büyük-küçük fark etmez) cek ifadesi geçen ifadeler demektir. gelecek,
Ceket,
GELECEK MİSİN?
Geldim,
geliyorum,
Çek,
senet
'/malı$/i' ikinci slash “/” işaretinden hemen önceki “$” işareti ile içeriğin sonu malı ile biten ifadeler demektir. yazmalı,
Kıymalı,
OLMALI
yazmalıyım,
çözmeli,
geliyorum,
kemal
'/^sin/i' birinci slash “/” işaretinden hemen sonraki “^” işareti ile içeriğin başı sin ile başlayan ifadeler demektir. Sinan,
sinek,
SİNcan
gelsinler,
versin
'/(meli|malı)/i' () Yuvarlak parantezler grup yapmak içindir.Bu grubun içinde ifadeler (veya) “|” işareti ile ayrılabilir. İçeriğinde
meli veya malı geçen ifadeler demektir.
gelmelisin,
yapMALI,
Melike
geliyor,
verecek
'/bi[rmn]/i' “[]” Köşeli parantezin yerine, içinde ki karakterlerden sadece bir tanesi kullanılabilir. bir,
BİM,
Bin,
bira,
BİMCELL,
kabir,
bilet,
biz,
sabır
'/bi[^rmn]/i' “[]” Köşeli parantezler içinde ki “^” işareti, kendinden sonra gelen karakterlerin haricinde karakterler kullanılabilir demektir.
r,m,n harfleri köşeli parantezin olduğu konumda kullanılamazlar.
biz,
BİT,
Bilet,
bikini,
Bizahmet,
kabile,
bir,
bim,
bin,
beş,
patates
'/k.le/i' “.” işareti herhangi bir karakteri ifade etmek için kullanılır. kale,
Kule,
kaleci,
kalem
kiler
kul,
koli,
tulum
'/ko./i' “.” işareti herhangi bir karakteri ifade etmek için kullanılır. Kot,
komi,
ekol
KO3
Komando
kul,
kiler,
ko
'/sar*/i' “*” işareti kendinden önce gelen karakteri veya grubu yok sayabilir ya da çok sayıda tekrar edebilir demektir. sa,
sar,
sarr,
saman
sarı,
yarasa
sibel,
sokak,
mehmet
'/tar*kan/i' “*” işareti kendinden önce gelen karakteri veya grubu yok sayabilir ya da çok sayıda tekrar edebilir demektir. takan,
tarkan,
tarrkan,
tarrrkan

erkan,
kan,
serkan
'/kitap(lar|ler)*/i' “*” işareti kendinden önce gelen karakteri veya grubu yok sayabilir ya da çok sayıda tekrar edebilir demektir. kitap,
kitaplar,
kitaplarlar,
kitapler,
kitaplerler,
kitapcı
kitabı,
kitmar,
sedat
'/ph?p/i' “?” işareti kendinden önce gelen karakteri veya grubu yok sayabilir ya da bu karakter bir defa kullanılabilir demektir. pp,
php,
PHP,
Php,

pop,
phhhp
'/an+ka/i' Artı “+” işareti “*” dan farklı olarak önceki karakter veya grubun en az bir defa bulunması koşulunu getirir. ankara,
annka,
annnka,

aka,
ank,
ana
'/15{2}/i' Kümeli parantez “{}” işareti kendinden önceki karakter veya grubun tekrar edilme miktarını belirler.Eğer tek bir değer yazılırsa; yazılan değer kadar tekrar şarttır. Küme parantezi içine iki değer virgül ile ayrılarak yazılırsa; tekrar, soldaki küçük değerden az ve sağdaki büyük değerden fazla olamaz. 155,
15569,
4515523,

25,
255,
333
'/ma{2,4}ş/i' Kümeli parantez “{}” işareti kendinden önceki karakter veya grubun tekrar edilme miktarını belirler.Eğer tek bir değer yazılırsa; yazılan değer kadar tekrar şarttır. Küme parantezi içine iki değer virgül ile ayrılarak yazılırsa; tekrar, soldaki küçük değerden az ve sağdaki büyük değerden fazla olamaz. maaş,
maaaş,
maaaaş,
maş,
maşa,
masa
'/201\d/' “\d”, digit kelimesinin baş harfi olan “d” harfi, regex ifadelerde önüne ters slash “\” karakteri alarak kullanıldığında herhangi bir rakamı ifade eder. 2015,
2016,
2017,
201a,
2020,
matematik
'/201\D/' “\D”, digit kelimesinin baş harfi olan büyük “D” harfi, regex ifadelerde önüne ters slash “\” karakteri alarak kullanıldığında rakam haricinde ki karakterleri ifade eder.”\d” ifadesinin tam tersidir.”[^0-9]” ifadesi ile aynı anlama gelir. 201a,
201bd,
201c1,
2013,
2010,
2016
'/201[0-9]/' Köşeli parantez içinde bir sayısal aralık kullanıldığında, o aralıkta ki herhangi bir rakamı ifade eder.Yukarıda ki “/d” ve “[0-9]” ifadeleri aynı anlama gelir. Digit veriler. 2015,
2016,
2017,
201a,
2020,
matematik
'/201[^0-9]/' Köşeli parantez içinde bir sayısal aralık kullanılmadan önce “^” işareti kullanılmışsa buraya bu aralığın haricinde bir karakter gelmeli demektir. 201a,
201bd,
201c1,
2013,
2010,
2016
'/can\w/i' “\w”, word kelimesinin baş harfi olan küçük “w” harfi, regex ifadelerde önüne ters slash “\” karakteri alarak kullanıldığında herhangi bir harf, rakam veya alt çizgi (Türkçe harfler hariç) Alfanümerik [a-zA-Z0-9_] karakterleri ifade eder. “\w” yerine [a-zA-Z0-9_] ifadesi de kullanılabilir. cano,
can2,
can_,
can$,
can*,
can?
'/can\W/i' “\W”, Word kelimesinin baş harfi olan büyük “W” harfi, regex ifadelerde önüne ters slash “\” karakteri alarak kullanıldığında Alfanümerik olmayan [^a-zA-Z0-9_] karakterleri ifade eder. “\W” yerine [^a-zA-Z0-9_] ifadesi de kullanılabilir. can?,
can*,
can$,
cano,
can2,
can_
'/can\skurtaran/i' “\s”, boşluk karakterleri ifade eder. “\s” yerine boşluk karakterleri olan [ \t\n\r\f] ifadesi de kullanılabilir. can kurtaran, caner,
can,
cansu
'/can\S/i' “\S”, boşluk olmayan karakterleri ifade eder. “\S” yerine boşluk karakteri olmayan [^ \t\n\r\f] ifadesi de kullanılabilir. caner,
casu,
can kurtaran,
can simidi,
can tatlıdır
'/\bve\b/i' “\b” karakterleri arasında ki ifadenin tam olarak geçmesi gerektiğini ifade eder. Kerem ve Aslı,
Ali ve Sinan,
vekil,
ivedi,
deve
'/\Bve\B/i' “\B” karakterleri arasında ki ifade “\b” karakterinin zıttı anlamına gelmektedir. Yani ifadenin tek başına bulunmaması gerekiyor. vekil,
ivedi,
deve,
Kerem ve aslı,
Ali ve Sinan,

ÖRNEKLER
1 '/<\/?[^>]+>/' HTML etiketlerini ifade eder <span></span>,
2 '/\d{2}\s?[A-Z]{1,3}\s?\d{2,4}/' Tr plaka tanımına uygun regexp gösterimi (özel plakalar hariç). 08 PHP 36,
36 ASP 25,
3 '/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/' Eposta doğrulamaları için. ali@gmail.com,
ridvan@hotmail.com,
4 '/^\d{1,2}\/\d{1,2}\/\d{4}$/' Tarih doğrulamaları için. 23/11/2014,
29/06/2012,
01/1/2011,
5 '/0\([0-9]{3}\)-[0-9]{3}-[0-9]{2}-[0-9]{2}/' Telefon Numarası doğrulamaları için. 0(474)-256-21-97,
0(545)-458-32-32,

Yazar Hakkında

1 Yorum

  1. Tablolar üzerinde bütün işlevleri tek tek göstermeniz, preg_match() fonksiyonunun özelliklerini öğrenmemiz için faydalı oldu

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Close