Функсияи preg_match
Функсияи preg_match дар сатр бо ибораи оддӣ мувофиқатҳоро меҷӯяд. Параметри аввал шаблони ибораи оддиро қабул мекунад, дуюм - сатр барои ҷустуҷӯ, сеюм (ихтиёрӣ) - массив барои нигоҳ доштани мувофиқатҳои ёфташуда, чаҳорум (ихтиёрӣ) - парчамҳо, панҷум (ихтиёрӣ) - ҷойивазкунии оғози ҷустуҷӯ.
Синтаксис
preg_match(pattern, subject, [matches], [flags], [offset]);
Парчамҳо
| Парчам | Константа | Тавсиф |
|---|---|---|
PREG_PATTERN_ORDER |
1 | Натиҷаҳо аз рӯи шаблонҳо ҷудо карда мешаванд (ба таври пешфарз) |
PREG_SET_ORDER |
2 | Натиҷаҳо аз рӯи маҷмӯаҳои мувофиқат ҷудо карда мешаванд |
PREG_OFFSET_CAPTURE |
256 | Ҷойгиршавии мувофиқатро дар сатр бармегардонад |
PREG_UNMATCHED_AS_NULL |
512 | Зершаблонҳои номувофиқшуда ҳамчун NULL баргардонида мешаванд |
Намуна
Месанҷем, ки оё сатр рақамҳо дорад:
<?php
$res = preg_match('/\d+/', 'abc123');
echo $res;
?>
Натиҷаи иҷрои код:
1
Намуна
Ҳамаи рақамҳоро аз сатр ба массив мегирем:
<?php
preg_match('/\d+/', 'abc123', $matches);
var_dump($matches);
?>
Натиҷаи иҷрои код:
[0 => '123']
Намуна
Истифодаи гурӯҳҳои номгузоришуда дар ибораи оддӣ:
<?php
preg_match('/(?P<name>\w+)\s+(?P<age>\d+)/', 'John 25', $matches);
var_dump($matches);
?>
Натиҷаи иҷрои код:
[
0 => 'John 25',
'name' => 'John',
1 => 'John',
'age' => '25',
2 => '25'
]
Намуна
Истифодаи парчами PREG_OFFSET_CAPTURE барои гирифтани ҷойгиршавии мувофиқат:
<?php
preg_match('/\d+/', 'abc123', $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);
?>
Натиҷаи иҷрои код:
[
0 => [
0 => '123',
1 => 3
]
]
Намуна
Ҷустуҷӯ бо мушаххас кардани ҷойивазкунӣ (offset):
<?php
preg_match('/\d+/', '123abc456', $matches, 0, 3);
var_dump($matches);
?>
Натиҷаи иҷрои код:
[0 => '456']
Намуна
Санҷиши эътибори суроғаи email:
<?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';
?>
Натиҷаи иҷрои код:
'Valid'
Инчунин бинед
-
функсияи
preg_match_all,
ки ҳамаи мувофиқатҳоро дар сатр меҷӯяд -
функсияи
preg_replace,
ки ивазкуниро бо ибораи оддӣ иҷро мекунад