logo

PHP preg_match() işlevi

preg_match() işlevi, düzenli ifade eşleşmesi gerçekleştiren PHP'nin yerleşik bir işlevidir. Bu işlev dizede kalıp arar ve kalıp mevcutsa doğruyu döndürür, aksi takdirde yanlış döndürür.

Genellikle arama $konu dizesi parametresinin başlangıcından başlar. Aramayı belirtilen konumdan başlatmak için isteğe bağlı $offset parametresi kullanılır.

Sözdizimi

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

Not: $offset, aramaya nereden başlayacağınızı belirten isteğe bağlı bir parametredir.

Parametreler

Bu işlev aşağıda açıklanan beş parametreyi kabul eder:

model

String tipi bir parametredir. Bu parametre aranacak modeli bir dize olarak tutar.

ders

Bu parametre, içinde desen aradığımız girdi dizesini tutar.

maçlar

Match parametresi sağlanırsa, arama sonuçlarını içerecektir.

maçlar[0] - Desenin tamamıyla eşleşen metni tutacaktır.

eşleşmeler[1] - İlk yakalanan parantez içindeki alt modelle eşleşen metni içerecektir ve bu şekilde devam eder.

bayraklar

posta siparişi geçişi ikili ağacı

Bayraklar aşağıda verilen bayraklara sahip olabilir:

    PREG_OFFSET_CAPTURE:Eğer bu bayrak preg_match()'da aktarılırsa, meydana gelen her eşleşme için ek dizge ofseti de geri dönecektir.PREG_UNMATCHED_AS_NULL:Bu bayrak preg_match() işlevinde iletilirse, eşleşmeyen alt model NULL olarak rapor edilecektir, aksi halde boş dize olarak rapor edilecektir.

telafi etmek

Varsayılan olarak arama $konu parametresinin başından başlar. Ofset parametresi aramanın başlayacağı yeri belirtmek için kullanılır. İsteğe bağlı bir parametredir.

İade Türü

Preg_match() işlevi, kalıp eşleşirse doğruyu, aksi halde yanlışı döndürür.

Not: Yalnızca bir dizenin başka bir dizede bulunup bulunmadığını kontrol etmek istiyorsanız preg_match() işlevini kullanmayın. Daha hızlı olacağı için strpos() işlevini kullanın.

Örnekler

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

Çıktı:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Daha iyi anlayabilmek için yukarıdaki çıktıyı aşağıda verildiği gibi görebiliriz.

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Örnekler: büyük/küçük harfe duyarlı olmayan arama

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Çıktı:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

Örnekler: kelime sınırını kullanarak ()

son işlemi geri al
 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

Çıktı:

 A match was found. A match was not found. 

Örnekler: alan adını URL'den çıkarın

 

Çıktı:

 Domain name is: javatpoint.com 

Regex (Normal İfade) sözdizimi

[ABC] Tek bir karakterle eşleşir - a, b veya c
[^abc] a, b veya c dışında herhangi bir tek karakterle eşleşir
[a-z] a-z aralığındaki herhangi bir tek karakterle eşleşir
[a-zA-Z] a-z veya A-Z aralığındaki herhangi bir tek karakter
^ Satır başlangıcı
$ Yolun sonu
A Dizenin başlangıcı
İle Dizenin sonu
. Herhangi bir tek karakter
S Herhangi bir boşluk karakteri
S Boşluk olmayan herhangi bir karakter
D Herhangi bir rakam
D Rakam olmayan herhangi bir
İçinde Herhangi bir kelime karakteri (harf, sayı, alt çizgi)
İÇİNDE Kelime olmayan herhangi bir karakter
B Kelime sınırı denetleyicisi
/?/ Normal ifadeyi başlatır ve bitirir
(?) Parantez içindeki her şeyi yakala ()
(a|b) A veya b
A? Sıfır veya bir tanesi
A* Sıfır veya daha fazlası
a+ Bir veya daha fazla
bir{3} Tam olarak 3'ü
bir{3,} 3 veya daha fazla
bir{3,6} 3 ila 6 arasında
Ben Büyük/küçük harfe duyarsız kontrol
M Yeni satırlarla nokta eşleşmesi yapın
X Regex'teki boşlukları yoksay

'[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]' kalıbının açıklanması

    ''/?/''Düzenli ifadenin başlangıcını ve bitişini gösterir.'[^[a-zA-Z0-9._-]'Herhangi bir büyük veya küçük harfle, 0 ile 9 arasındaki rakamlarla, noktayla, alt çizgiyle veya tirelerle eşleşir.'+@[a-zA-Z0-9-]'@ sembolü ve ardından gelen büyük veya küçük harfler, 0 ile 9 arasındaki rakamlar veya tirelerle eşleşir.'+.[a-zA-Z.]{2.5}$/'Nokta, ters eğik çizgi kullanılarak çıkarılır ve ardından dizenin sonundaki uzunluğu 2 ile 5 arasında olan küçük veya büyük harflerle eşleştirilir.