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