PHP preg_match(): Wyrażenia regularne (Regex)
Co to jest wyrażenie regularne w PHP?
Wyrażenie regularne PHP znane również jako regex są potężnym algorytmem dopasowywania wzorców, który można wykonać w jednym wyrażeniu. Wyrażenia regularne używają operatorów arytmetycznych, takich jak (+,-,^), aby tworzyć złożone wyrażenia. Mogą pomóc w wykonywaniu zadań, takich jak sprawdzanie poprawności adresów e-mail, adresów IP itp.
Po co używać wyrażeń regularnych
- Wyrażenia regularne PHP upraszczają identyfikację wzorców w danych łańcuchowych poprzez wywołanie pojedynczej funkcji. Oszczędza to nam czas kodowania.
- Podczas weryfikacji danych wprowadzanych przez użytkownika, takich jak adres e-mail, nazwy domen, numery telefonów, adresy IP,
- Wyróżnianie słów kluczowych w wynikach wyszukiwania
- Podczas tworzenia niestandardowego szablonu HTML. Regex w PHP można wykorzystać do identyfikacji tagów szablonów i zastąpienia ich rzeczywistymi danymi.
Wbudowane funkcje wyrażeń regularnych w PHP
PHP ma wbudowane funkcje, które pozwalają nam pracować z funkcjami regularnymi, których nauczymy się w tym samouczku dotyczącym wyrażeń regularnych PHP. Przyjrzyjmy się powszechnie używanym funkcjom wyrażeń regularnych w PHP.
- preg_match() w PHP – ta funkcja służy do dopasowywania wzorców w PHP na ciągu znaków. Zwraca wartość true, jeśli znaleziono dopasowanie, i false, jeśli nie znaleziono dopasowania.
- preg_split() w PHP – ta funkcja służy do dopasowania wzorca na ciągu znaków, a następnie podzielenia wyników na tablicę numeryczną
- preg_replace() w PHP – ta funkcja służy do dopasowania wzorca na ciągu znaków, a następnie zastąpienia dopasowania określonym tekstem.
Poniżej znajduje się składnia funkcji wyrażeń regularnych, takiej jak PHP preg_match(), PHP preg_split() lub PHP preg_replace().
<?php
function_name('/pattern/',subject);
?>
TUTAJ,
- „Nazwa_funkcji(…)” to PHP preg_match(), PHP preg_split() lub PHP preg_replace().
- „/…/” Ukośniki oznaczają początek i koniec naszej funkcji testera wyrażeń regularnych PHP
- „'/pattern/'” to wzór, który musimy dopasować
- „Temat” to ciąg tekstowy, do którego ma zostać dopasowane
Przyjrzyjmy się teraz praktycznym przykładom implementującym powyższe funkcje wyrażeń regularnych PHP.
Preg_match() w PHP
Pierwszy przykład wykorzystuje funkcję preg_match() w PHP, aby wykonać proste dopasowanie wzorca dla słowa guru w danym adresie URL.
Poniższy kod przedstawia implementację funkcji testowej preg_match() dla powyższego przykładu.
<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
echo "the url $my_url contains guru";
}
else
{
echo "the url $my_url does not contain guru";
}
?>
Przejdź do adresu URL http://localhost/phptuts/preg_match_simple.php
Przeanalizujmy część kodu odpowiedzialną za nasze dane wyjściowe „preg_match('/guru/', $mój_url)” TUTAJ,
- „preg_match(…)” to funkcja regex PHP
- „'/guru/'” to wzorzec wyrażenia regularnego, który ma zostać dopasowany
- „$my_url” to zmienna zawierająca tekst, do którego ma zostać dopasowane.
Poniższy diagram podsumowuje powyższe punkty
PHP Preg_split()
Przyjrzyjmy się teraz innemu przykładowi, w którym zastosowano funkcję preg_split() w PHP.
Weźmiemy frazę łańcuchową i rozbijemy ją na tablicę; wzorcem do dopasowania jest pojedyncza spacja.
Ciąg tekstowy, który zostanie użyty w tym przykładzie, to „Kocham wyrażenia regularne”.
Poniższy kod ilustruje implementację powyższego przykładu.
<?php
$my_text="I Love Regular Expressions";
$my_array = preg_split("/ /", $my_text);
print_r($my_array );
?>
Przejdź do adresu URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Przyjrzyjmy się teraz funkcji preg_replace() w Funkcja PHP który wykonuje dopasowanie wzorca, a następnie zastępuje wzorzec czymś innym.
Poniższy kod wyszukuje słowo guru w a ciąg.
Zastępuje słowo guru słowem guru otoczonym kodem CSS, który podkreśla kolor tła.
<?php
$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";
$text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text);
echo $text;
?>
Zakładając, że zapisałeś plik preg_replace.php, przeglądarka pod adresem URL http://localhost/phptuts/preg_replace.php
Metaznaki wyrażeń regularnych
Powyższe przykłady wykorzystują bardzo podstawowe wzorce; metaznaki po prostu pozwalają nam wykonywać bardziej złożone dopasowania wzorców, takie jak testowanie poprawności adresu e-mail. Przyjrzyjmy się teraz powszechnie używanym metaznakom.
| Metaznak | OPIS | Przykład |
|---|---|---|
| . | Dopasowuje dowolny pojedynczy znak z wyjątkiem nowej linii | /./ dopasowuje wszystko, co ma pojedynczy znak |
| ^ | Dopasowuje początek lub ciąg / wyklucza znaki | /^PH/ dopasowuje dowolny ciąg zaczynający się od PH |
| $ | Dopasowuje wzór na końcu ciągu | /com$/ pasuje do guru99.com,yahoo.com itp. |
| * | Dopasowuje dowolne zero (0) lub więcej znaków | /com*/ odpowiada komputerowi, komunikacji itp. |
| + | Wymaga, aby poprzedzające znaki pojawiły się co najmniej raz | /yah+oo/ pasuje do yahoo |
| \ | Służy do ucieczki metaznaków | /yahoo+\.com/ traktuje kropkę jako wartość dosłowną |
| [...] | Klasa postaci | /[abc]/ dopasowuje abc |
| AZ | Pasuje do małych liter | /az/ pasuje do fajnych, szczęśliwych itp. |
| AZ | Pasuje do wielkich liter | /AZ/ odpowiada CO, JAK, DLACZEGO itp. |
| 0-9 | Dopasowuje dowolną liczbę z zakresu od 0 do 9 | /0-4/ pasuje do 0,1,2,3,4 |
Powyższa lista zawiera tylko najczęściej używane metaznaki w wyrażeniach regularnych.
Przyjrzyjmy się teraz dość złożonemu przykładowi sprawdzającemu poprawność adresu e-mail.
<?php
$my_email = "name@company.com";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email is a valid email address";
}
else
{
echo "$my_email is NOT a valid email address";
}
?>
Wyjaśnienie wzorca „[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] ”
TUTAJ,
- „'/…/'” rozpoczyna i kończy wyrażenie regularne
- „^[a-zA-Z0-9._-]” pasuje do wszystkich małych i wielkich liter, cyfr od 0 do 9 oraz kropek, podkreśleń i myślników.
- „+@[a-zA-Z0-9-]” oznacza symbol @, po którym następują małe lub wielkie litery, cyfry od 0 do 9 lub myślniki.
- „+\.[a-zA-Z.]{2,5}$/” powoduje ucieczkę od kropki za pomocą ukośnika odwrotnego, a następnie dopasowuje dowolne małe lub wielkie litery o długości od 2 do 5 na końcu ciągu.
Przejdź do adresu URL http://localhost/phptuts/preg_match.php
Jak widać z powyższego przykładowego zestawienia, metaznaki mają ogromną moc, jeśli chodzi o dopasowywanie wzorców.
Podsumowanie
- Wyrażenie regularne lub Regex w PHP to algorytm dopasowywania wzorców
- Wyrażenia regularne są bardzo przydatne podczas sprawdzania poprawności, tworzenia systemów szablonów HTML rozpoznających tagi itp.
- PHP posiada wbudowane funkcje mianowicie PHP preg_match(), PHP preg_split() i PHP preg_replace(), które obsługują wyrażenia regularne.
- Metaznaki pozwalają nam tworzyć złożone wzorce




![[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]](https://www.guru99.com/images/2013/04/validate_email.png)