PHP preg_match(): Wyrażenia regularne (Regex)
⚡ Inteligentne podsumowanie
Wyrażenia regularne w PHP to narzędzia do dopasowywania wzorców, które walidują, dzielą i zamieniają tekst w jednym wyrażeniu. Ten przewodnik omawia podstawowe funkcje preg_match, preg_split i preg_replace, wyjaśnia typowe metaznaki i krok po kroku buduje działający wzorzec walidacji adresu e-mail.

Czym jest wyrażenie regularne w PHP?
Wyrażenia regularne PHP, znane również jako wyrażenia regularne, to potężne narzędzie do dopasowywania wzorców, które można wykonać w jednym wyrażeniu. Wyrażenia regularne używają znaków specjalnych, takich jak +, - i ^, do tworzenia złożonych wyrażeń. Mogą one pomóc w wykonywaniu zadań, takich jak weryfikacja adresów e-mail, adresów IP i innych.
Po co używać wyrażeń regularnych
- Wyrażenia regularne PHP upraszczają identyfikację wzorców w danych tekstowych poprzez wywołanie jednej funkcji. Oszczędza nam to czas kodowania.
- Podczas weryfikacji danych wprowadzanych przez użytkownika, takich jak adresy e-mail, nazwy domen, numery telefonów i 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 posiada wbudowane funkcje, które pozwalają nam pracować z wyrażeniami regularnymi, które poznamy w tym samouczku. Przyjrzyjmy się najczęściej używanym funkcjom wyrażeń regularnych w PHP.
- preg_match() w PHP – ta funkcja służy do dopasowania wzorca do ciągu znaków. Zwraca wartość true, jeśli dopasowanie zostanie znalezione, i false, jeśli nie zostanie znalezione.
- preg_split() w PHP – funkcja ta służy do dopasowania wzorca do ciągu znaków, a następnie podziału wyników na tablicę liczbową.
- 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 przedstawiono składnię funkcji wyrażenia regularnego, takiej jak preg_match(), preg_split() lub preg_replace().
<?php
function_name('/pattern/',subject);
?>
TUTAJ,
- “function_name(…)” to albo preg_match(), preg_split() albo preg_replace().
- „/…/” ukośniki oznaczają początek i koniec naszego wyrażenia regularnego
- „'/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
W pierwszym przykładzie użyto funkcji preg_match() do wykonania prostego dopasowania wzorca dla słowa guru w danym URL.
Poniższy kod pokazuje implementację funkcji 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 URL http://localhost/phptuts/preg_match_simple.php
Przyjrzyjmy się części kodu odpowiedzialnej za nasz wynik, preg_match('/guru/', $my_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.
PHP Preg_split()
Przyjrzyjmy się teraz innemu przykładowi wykorzystującemu funkcję preg_split().
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 URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Przyjrzyjmy się teraz preg_replace() 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 podświetla 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, przejdź do URL http://localhost/phptuts/preg_replace.php
Metaznaki wyrażeń regularnych
W powyższych przykładach wykorzystano bardzo podstawowe wzorce. Metaznaki pozwalają nam na przeprowadzanie bardziej złożonych dopasowań wzorców, takich 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 ciągu lub 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 itd. |
| * | Dopasowuje zero lub więcej z poprzednich znaków | /com*/ odpowiada komputerowi, komunikacji itp. |
| + | Wymaga, aby poprzednie 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]/ pasuje do a, b lub c |
| 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 walidacji wiadomości e-mail
TUTAJ,
- „/…/” rozpoczyna i kończy wyrażenie regularne
- „^[a-zA-Z0-9._-]” oznacza dowolne litery małe i wielkie, cyfry od 0 do 9 oraz kropki, podkreślenia i myślniki.
- „+@[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}$/” ucieka od kropki za pomocą ukośnika odwrotnego, a następnie dopasowuje wszystkie małe lub wielkie litery o długości znaku od 2 do 5 na końcu ciągu.
Przejdź do URL http://localhost/phptuts/preg_match.php
Jak widać z powyższego zestawienia, metaznaki są bardzo skutecznym narzędziem dopasowywania wzorców.




