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

Wbudowane funkcje wyrażeń regularnych

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_split()

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

PHP Preg_replace()

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

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

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