Funkcja preg_match() jest wbudowaną funkcją PHP, która wykonuje dopasowanie wyrażeń regularnych. Ta funkcja przeszukuje ciąg znaków pod kątem wzorca i zwraca wartość true, jeśli wzorzec istnieje, w przeciwnym razie zwraca wartość false.
Ogólnie rzecz biorąc, wyszukiwanie rozpoczyna się od początku parametru ciągu $subject. Opcjonalny parametr $offset służy do rozpoczęcia wyszukiwania od określonej pozycji.
Składnia
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
Uwaga: $offset to opcjonalny parametr określający pozycję, od której należy rozpocząć wyszukiwanie.
Parametry
Funkcja ta przyjmuje pięć parametrów, które opisano poniżej:
wzór
Jest to parametr typu string. Ten parametr przechowuje wzorzec do wyszukiwania jako ciąg.
temat
Parametr ten przechowuje ciąg wejściowy, w którym szukamy wzorca.
mecze
Jeśli podany zostanie parametr dopasowania, będzie on zawierał wyniki wyszukiwania.
mecze[0] - Będzie zawierać tekst pasujący do całego wzoru.
mecze[1] - Będzie zawierać tekst pasujący do pierwszego przechwyconego podwzorca w nawiasach i tak dalej.
flagi
c# zawiera ciąg
Flagi mogą mieć następujące flagi podane poniżej:
zrównoważyć
Domyślnie wyszukiwanie rozpoczyna się od początku parametru $subject. Parametr offset służy do określenia miejsca, w którym rozpocznie się wyszukiwanie. Jest to parametr opcjonalny.
Typ zwrotu
Funkcja preg_match() zwraca wartość true, jeśli wzorzec pasuje, w przeciwnym razie zwraca wartość false.
Uwaga: Jeśli chcesz tylko sprawdzić, czy jeden ciąg znaków jest zawarty w innym ciągu, nie używaj funkcji preg_match(). Użyj funkcji strpos(), ponieważ będzie szybciej.
Przykłady
<?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?>
Wyjście:
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Powyższe dane wyjściowe możemy zobaczyć poniżej, aby lepiej je zrozumieć.
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Przykłady: wyszukiwanie bez uwzględniania wielkości liter
<?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Wyjście:
Pattern matched in string. Array ( [0] => JTP )
Przykłady: używając granicy słowa ()
<?php /* The indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
Wyjście:
A match was found. A match was not found.
Przykłady: pobierz nazwę domeny z adresu URL
Wyjście:
łączenie ciągu Java
Domain name is: javatpoint.com
Składnia Regex (wyrażenie regularne).
[ABC] | Dopasowuje pojedynczy znak - a, b lub c |
[^abc] | Dopasowuje dowolny pojedynczy znak oprócz a, b lub c |
[a-z] | Dopasowuje dowolny pojedynczy znak z zakresu a–z |
[a-zA-Z] | Dowolny pojedynczy znak z zakresu a–z lub A–Z |
^ | Początek linii |
$ | Koniec linii |
A | Początek ciągu |
z | Koniec sznurka |
. | Dowolny pojedynczy znak |
S | Dowolny biały znak |
S | Dowolny znak inny niż spacja |
D | Dowolna cyfra |
D | Dowolny niecyfrowy |
w | Dowolny znak słowa (litera, cyfra, podkreślenie) |
W | Dowolny znak inny niż słowo |
B | Kontroler granic słów |
/?/ | Rozpoczyna i kończy wyrażenie regularne |
(?) | Przechwyć wszystko zawarte w nawiasach () |
(a|b) | a lub B |
A? | Zero lub jedno z a |
A* | Zero lub więcej a |
+ | Jeden lub więcej z |
a{3} | Dokładnie 3 z |
a{3,} | 3 lub więcej a |
a{3,6} | Między 3 a 6 a |
I | Kontrola niewrażliwa na wielkość liter |
M | Dopasuj kropki do nowych linii |
X | Ignoruj białe znaki w wyrażeniu regularnym |