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функциясын,
ол регулярды өрнек бойынша ауыстыруды орындайды