Preg_match функциясы

preg_match функциясы жолда регулярды өрнекке сәйкестіктерді іздейді. Бірінші параметр ретінде регулярды өрнек үлгісін, екінші параметр ретінде іздеу жолын, үшінші параметр ретінде (міндетті емес) табылған сәйкестіктерді сақтау үшін массивті, төртінші параметр ретінде (міндетті емес) флагтарды, бесінші параметр ретінде (міндетті емес) іздеудің басталу ығысуын қабылдайды.

Синтаксис

phppreg_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<?php
  $res = preg_match('/\d+/', 'abc123');
  echo $res;
?>

Код орындау нәтижесі:

php1

Мысал

Жолдан барлық сандарды массивке алайық:

php<?php
  preg_match('/\d+/', 'abc123', $matches);
  var_dump($matches);
?>

Код орындау нәтижесі:

php[0 => '123']

Мысал

Регулярды өрнекте атаулы топтарды қолдану:

php<?php
  preg_match('/(?P<name>\w+)\s+(?P<age>\d+)/', 'John 25', $matches);
  var_dump($matches);
?>

Код орындау нәтижесі:

php[
  0 => 'John 25',
  'name' => 'John',
  1 => 'John',
  'age' => '25',
  2 => '25'
]

Мысал

Сәйкестік позициясын алу үшін PREG_OFFSET_CAPTURE флагын қолдану:

php<?php
  preg_match('/\d+/', 'abc123', $matches, PREG_OFFSET_CAPTURE);
  var_dump($matches);
?>

Код орындау нәтижесі:

php[
  0 => [
    0 => '123',
    1 => 3
  ]
]

Мысал

Ығысу (offset) көрсетілген іздеу:

php<?php
  preg_match('/\d+/', '123abc456', $matches, 0, 3);
  var_dump($matches);
?>

Код орындау нәтижесі:

php[0 => '456']

Мысал

Email мекенжайының жарамдылығын тексеру:

php<?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';
?>

Код орындау нәтижесі:

php'Valid'

Сондай-ақ қараңыз

  • preg_match_all функциясын,
    ол жолдағы барлық сәйкестіктерді іздейді
  • preg_replace функциясын,
    ол регулярды өрнек бойынша ауыстыруды орындайды