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:
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] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Daha iyi anlayabilmek için yukarıdaki çıktıyı aşağıda verildiği gibi görebiliriz.
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 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>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Çıktı:
Pattern matched in string. Array ( [0] => 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>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
Çı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 |