Php regex nedir ? nasıl kullanılır ?

sezaialkan
Sezai Alkan Frontend Developer

Regular Expression Açılımı ile REGEX Türkçe anlamı olarak Düzenli İfade olarak anılmaktadır. Bazı durum ve yerlerde Kurallı İfadeler olarakda bahsedilmektedir. Regex php dışındada farklı dillerde de kullanımı mevcuttur. 

Regex in asıl amacı bir metin içerisinde Belirli bir kural ile arama yapmaktır. Bu kuralı ise belirli bir standartta biz belirlemekteyiz, En çok tercih edilen ise PCRE - Perl Uyumlu Düzenli ifadelerdir. 

Kullanımında düzenli ifademizi bölü işareti arasında belirtmekteyiz / İfade / şeklinde kullanımı sağlanmaktadır. 

Aşağıda Regex için gerekli olan PCRE fonksiyonları ve kullanım amaçları listelenmiştir.

preg_match()Düzenli ifadeyi eşleştirmeye çalışır.
preg_match_all()Kapsamlı Düzenli ifadeyi eşleştirmeye çalışır.
preg_filter()Düzenli ifade içerisinde arama ve değiştirme yapar
preg_replace()Düzenli ifadeye göre değişiklik yapar
preg_split()Dizgiyi düzenli ifade göre böler
preg_last_error()Son düzenli ifade aramasından dönen hatayı listeler
preg_replace_callback()Geri dönen ifadeye göre değişiklik yapar
preg_replace_callback_array()Geri dönen ifadeye göre dizide değişiklik yapar
preg_grep()Düzenli ifadeyle eşleşen verileri dizi olarak döndürür
preg_quote()Düzenli ifadelerin özel karakterlerini önceler

Oluşturduğunuz Regex kodlarını regexr.com adresinden anlık olarak test ve kontrol edebilirsiniz. Bunun yanında ise regex101.com adresinden ise faydalanabilirsiniz. 

Aşağıdaki tabloda Desenleri ve açıklamaları gösterilmiştir.

\dHerhangi bir rakam/\d/sezai 2021
\DRakam olmayan herhangi bir karakter/\D/sezai 2021
\bKelime bitiş sınırı eşleşen/e\b/sezai 2021
\BKelime bitiş sınırı eşleşmeyen içinde geçen/a\B/alkan sezai
\sBoşluk ve Tab karakterleri ile eşleşenler/\s/  sezai
\SBoşluk ve Tab karakterleri ile eşleşmeyenler/\S/  sezai
\wHarfler ve Sayılar ve _ Alt çizgi karakteri/\w/23 Sezai_ ?-/
\WHarfler ve Sayılar ve _ Alt çizgi karakteri hariç/\W/23 Sezai_ ?-/
^İfade belirtilen karakterler ile başlamalı/^s/sezai
.Herhangi bir karakter Birden fazla kullanımı/./sezai alkan
$Satır sonu belirtilen karakterler ile bitmeli/n$/sezai alkan
*Belirtilen karakterlerden öncekilerle eşleşir/a*/sezai alkan
.*Belirtilen karakterden öncekilerde string ifade oluşturur/a.*/sezai alkan
?Belirtilen karakterden önce bir karakter var yada yok/sez?/sezai sezaialkan
?=Olumlu Eşleşme/se(?=zai)/sezai sezaialkan
?!Olumsuz eşleşme /se(?!zai)/sezai sezaialkan
+Belirtilen karakterden en az bir tane olmalı/+s/sezai alkan
.+Belirtilenden sonra gelen karakterler/alk.+/sezai alkan izmit
[A-Z]A'dan Z'ye Büyük harfler/[A-Z]/sezai ALKAN
[a-z]a'dan z'ye Küçük harfler/[a-z]/sezai ALKAN
[a-z]+a'dan z'ye küçük harfleri birleştirir/[a-z]+/sezai ALKAN
[A-Z]+A'dan Z'ye Büyük harfleri birleştirir/[A-Z]+/ sezai ALKAN
[a-züşç]+Türkçe karakterler harici olarak belirtilmesi gereklidir/[a-zçi]+/çekiç kazma
[A-Za-z]Büyük küçük harf ayrımı yapılamaz/[A-Za-z]/sezai ALKAN
{max}Belirtilen karakter kadar tekrar/a{2}/sezaai alkan
{min, }En az belirtilen kadar tekrar/a{3, }/sezaai alkaaan
{min, max}Belirtilen karakterler min-max kadar tekrar/1{2,4}/1 11 111 1111
[ ]Gruptaki herhangi bir karakter/[szkl]/sezai alkan
[^]Gruptaki herhangi hariç bir karakter/[^szkl]/sezai alkan
( )Kalıpları bloklar, Değişken olarak hafıza tutar/(sezai|alkan)/sezai alkan izmit
\tTab Karakteritab 
\nYeni satır karakteri ile eşleşir  
\rSatır Başı karakteri ile eşleşir  
\0Null Karakteri  

Karakter Sınıfları

[:alnum:][A-Za-z0-9] ile eş değerdir[:alnum:]sezai alkan 2021
[[:digit:]][0-9] ile eş değerdir [[:digit:]]sezai 2021
[[:alpa:]][A-Za-z] ile eş değer[[:alpa:]]sezai 2021 alkan
[[:ascii:]]ASCII karakterlerle eşleşir [[:ascii:]] sezai alkan
[[:blank:]]Alt satır geçişi hariç boşluklarla eşleşir[[:blank:]]sezai alkan 2021
[[:lower:]][a-z] ile eş değerdir[[:lower:]]sEzai ALKan
[[:upper:]][A-Z] ile eş değerdir[[:upper:]]sezai ALKAN
[[:punct:]]Boşluk harf ve sayı olmayan karakterlerle eşleşir[[:punct:]]sezai, alkan'a
[[:space:]]/\s/ ile eş değerdir [[:space:]]sezai alkan
[[:word:]]/\w/ veya [a-zA-Z0-9_] ile eş değerdir[[:word:]]sezai alkan 2021
[[:xdigit:]][0-9a-fA-F] ile eş değer[[:xdigit:]]sezai9 #343434

Yukarıda tabloda belirtilen örnekleri regexr.com adresinden test edebilirsiniz. 

Yorumlar

Yorum Yapabilmek İçin Giriş Yapmalısınız.
İlk Yorum Yapan Sen Ol!
Uçur Beni Kahramanım Yukarı Çık
Bu web sitesi çerezleri kullanıyor. Devam ederek çerez kullanımını kabul etmiş oluyorsunuz. Detay

Devam Etmek İçin Giriş Yapın

Kod Hocası İle Paylaşımda bulunabilir, Kendini geliştirebilirsin. Sende Hemen Giriş Yap Aramıza Katıl.

GirişKayıt Ol