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 |