Autor:26.11.2024
Wyrażenia regularne (RegEx) to potężne narzędzie, które umożliwia efektywne wyszukiwanie, dopasowywanie i manipulowanie tekstem. W kontekście programowania w PHP wyrażenia regularne są szczególnie przydatne do:
W tym artykule zapoznamy się z podstawami wyrażeń regularnych w PHP oraz pokażemy, jak zbudować proste wyrażenie regularne.
W PHP najczęściej do pracy z wyrażeniami regularnymi używamy funkcji z biblioteki PCRE (Perl-Compatible Regular Expressions). Funkcje te zaczynają się od prefiksu preg_.
Oto niektóre z podstawowych funkcji PCRE, które są używane w PHP:
Funkcja preg_match() służy do sprawdzenia, czy dany wzór występuje w ciągu tekstowym.
<?php $text = "Dzisiaj pogoda jest piękna."; $pattern = '/piękna/'; if (preg_match($pattern, $text)) { echo "Słowo 'piękna' zostało znalezione w tekście!"; } else { echo "Słowo 'piękna' nie zostało znalezione w tekście."; } ?>
Wynik:
Słowo 'piękna' zostało znalezione w tekście!
Kod weryfikuje, czy słowo piękna (określone przez $pattern) znajduje się w ciągu tekstowym $text. Następnie wyświetla odpowiedni komunikat.
Funkcja preg_replace() umożliwia zastąpienie wystąpień wzoru w tekście, nowym ciągiem.
<?php $text = "Jabłka są pyszne, a gruszki są smaczne."; $pattern = '/jabłka/i'; $replacement = 'Owoce'; $new_text = preg_replace($pattern, $replacement, $text); echo $new_text; ?>
Wynik:
Owoce są pyszne, a gruszki są smaczne.
W tym przykładzie słowo jabłka zostało zastąpione przez Owoce, co pokazuje, jak preg_replace() może modyfikować tekst.
Funkcja preg_split() dzieli ciąg tekstowy na podstawie wyrażenia regularnego.
<?php $text = "kot, pies; ryba|ptak. królik"; $pattern = '/[;,|.]/'; $animals = preg_split($pattern, $text); print_r($animals); ?>
Wynik:
Array ( [0] => kot [1] => pies [2] => ryba [3] => ptak [4] => królik )
Kod ten dzieli ciąg na podstawie przecinków, średników, kresek pionowych i kropek, co skutkuje tablicą nazw poszczególnych zwierząt.
Zwróć uwagę, jak określamy znaki, na podstawie których podzielimy tekst, w nawiasach kwadratowych ($pattern). Zobaczmy, co się stanie, gdy pozostawimy tylko znaki kropki (.) i przecinka (,):
<?php $text = "kot, pies; ryba|ptak. królik"; $pattern = '/[,.]/'; $animals = preg_split($pattern, $text); print_r($animals); ?>
Wynik:
Array ( [0] => kot [1] => pies; ryba|ptak [2] => królik )
W tym przypadku ciąg tekstowy jest dzielony tylko po przecinkach i kropkach, a średniki i pionowe kreski pozostają nienaruszone.
Wyrażenia regularne to potężne narzędzie, które może znacznie ułatwić przetwarzanie danych w PHP.