Preg_match funksiyası

preg_match funksiyası sətirdə regular ifadə ilə uyğunluq axtarır. Birinci parametr kimi regular ifadə şablonu, ikinci parametr kimi axtarış üçün sətir, üçüncü parametr kimi (isteğe bağlı) tapılan uyğunluqları saxlamaq üçün massiv, dördüncü parametr kimi (isteğe bağlı) flaglar, beşinci parametr kimi (isteğe bağlı) axtarışın başlama ofseti qəbul edir.

Sintaksis

phppreg_match(pattern, subject, [matches], [flags], [offset]);

Flaglar

Flag Konstant Təsvir
PREG_PATTERN_ORDER 1 Nəticələr şablonlara görə çeşidlenir (defolt)
PREG_SET_ORDER 2 Nəticələr uyğunluq dəstlərinə görə çeşidlenir
PREG_OFFSET_CAPTURE 256 Uyğunluğun sətirdəki mövqeyini qaytarır
PREG_UNMATCHED_AS_NULL 512 Uyğun gəlməyən altşablonlar NULL kimi qaytarılır

Nümunə

Sətirin rəqəm ehtiva edib-etmədiyini yoxlayaq:

php<?php
  $res = preg_match('/\d+/', 'abc123');
  echo $res;
?>

Kodun icrasının nəticəsi:

php1

Nümunə

Sətirdən bütün rəqəmləri massivə çıxaraq:

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

Kodun icrasının nəticəsi:

php[0 => '123']

Nümunə

Regular ifadədə adlandırılmış qrupların istifadəsi:

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

Kodun icrasının nəticəsi:

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

Nümunə

Uyğunluğun mövqeyini almaq üçün PREG_OFFSET_CAPTURE flagının istifadəsi:

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

Kodun icrasının nəticəsi:

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

Nümunə

Ofset göstərilməklə axtarış (offset):

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

Kodun icrasının nəticəsi:

php[0 => '456']

Nümunə

Email ünvanının etibarlılığının yoxlanılması:

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

Kodun icrasının nəticəsi:

php'Valid'

Həmçinin bax

  • preg_match_all funksiyasına,
    sətirdə bütün uyğunluqları axtaran
  • preg_replace funksiyasına,
    regular ifadə ilə əvəzetmə edən