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.
| Düzenli ifadeyi eşleştirmeye çalışır. |
| Kapsamlı Düzenli ifadeyi eşleştirmeye çalışır. |
| Düzenli ifade içerisinde arama ve değiştirme yapar |
| Düzenli ifadeye göre değişiklik yapar |
| Dizgiyi düzenli ifade göre böler |
| Son düzenli ifade aramasından dönen hatayı listeler |
| Geri dönen ifadeye göre değişiklik yapar |
| Geri dönen ifadeye göre dizide değişiklik yapar |
| Düzenli ifadeyle eşleşen verileri dizi olarak döndürür |
| 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.
\d | Herhangi bir rakam | /\d/ | sezai 2021 |
\D | Rakam olmayan herhangi bir karakter | /\D/ | sezai 2021 |
\b | Kelime bitiş sınırı eşleşen | /e\b/ | sezai 2021 |
\B | Kelime bitiş sınırı eşleşmeyen içinde geçen | /a\B/ | alkan sezai |
\s | Boşluk ve Tab karakterleri ile eşleşenler | /\s/ | sezai |
\S | Boşluk ve Tab karakterleri ile eşleşmeyenler | /\S/ | sezai |
\w | Harfler ve Sayılar ve _ Alt çizgi karakteri | /\w/ | 23 Sezai_ ?-/ |
\W | Harfler 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 |
\t | Tab Karakteri | tab | |
\n | Yeni satır karakteri ile eşleşir | ||
\r | Satır Başı karakteri ile eşleşir | ||
\0 | Null Karakteri |
[: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.