preg_match Fonksiyonu
preg_match fonksiyonu, bir dizgede düzenli ifade eşleşmelerini arar. İlk parametre olarak düzenli ifade kalıbını, ikinci parametre olarak arama yapılacak dizgeyi, üçüncü parametre olarak (isteğe bağlı) bulunan eşleşmeleri kaydetmek için bir dizi, dördüncü parametre olarak (isteğe bağlı) bayrakları, beşinci parametre olarak (isteğe bağlı) aramanın başlangıç konumunu alır.
Sözdizimi
preg_match(pattern, subject, [matches], [flags], [offset]);
Bayraklar
| Bayrak | Sabit | Açıklama |
|---|---|---|
PREG_PATTERN_ORDER |
1 | Sonuçlar kalıplara göre sıralanır (varsayılan) |
PREG_SET_ORDER |
2 | Sonuçlar eşleşme setlerine göre sıralanır |
PREG_OFFSET_CAPTURE |
256 | Eşleşmenin dizgedeki konumunu döndürür |
PREG_UNMATCHED_AS_NULL |
512 | Eşleşmeyen alt kalıplar NULL olarak döndürülür |
Örnek
Bir dizgenin rakam içerip içermediğini kontrol edelim:
<?php
$res = preg_match('/\d+/', 'abc123');
echo $res;
?>
Kodun çalıştırılma sonucu:
1
Örnek
Bir dizgedeki tüm rakamları bir diziye çıkaralım:
<?php
preg_match('/\d+/', 'abc123', $matches);
var_dump($matches);
?>
Kodun çalıştırılma sonucu:
[0 => '123']
Örnek
Düzenli ifadede adlandırılmış grupların kullanımı:
<?php
preg_match('/(?P<name>\w+)\s+(?P<age>\d+)/', 'John 25', $matches);
var_dump($matches);
?>
Kodun çalıştırılma sonucu:
[
0 => 'John 25',
'name' => 'John',
1 => 'John',
'age' => '25',
2 => '25'
]
Örnek
Eşleşme konumunu almak için PREG_OFFSET_CAPTURE bayrağının kullanımı:
<?php
preg_match('/\d+/', 'abc123', $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);
?>
Kodun çalıştırılma sonucu:
[
0 => [
0 => '123',
1 => 3
]
]
Örnek
Başlangıç konumu (offset) belirterek arama:
<?php
preg_match('/\d+/', '123abc456', $matches, 0, 3);
var_dump($matches);
?>
Kodun çalıştırılma sonucu:
[0 => '456']
Örnek
E-posta adresi geçerlilik kontrolü:
<?php
$email = 'test@example.com';
$res = preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email);
echo $res ? 'Valid' : 'Invalid';
?>
Kodun çalıştırılma sonucu:
'Valid'
Ayrıca Bakınız
-
preg_match_allfonksiyonu,
bir dizgedeki tüm eşleşmeleri arar -
preg_replacefonksiyonu,
düzenli ifadeye göre değiştirme işlemi yapar