Wyrażenia regularne i ich obsługa w PHP oraz JavaScript
Wprowadzenie
Wyrażenia regularne (ang. regular expressions, regex) to potężne narzędzie umożliwiające przeszukiwanie, dopasowywanie i manipulację tekstu. Są szeroko stosowane w różnych językach programowania, w tym w PHP i JavaScript. W tym artykule omówimy sposoby obsługi wyrażeń regularnych w obu tych językach oraz przedstawimy przykłady ich zastosowań.
Wyrażenia regularne w PHP
W PHP do obsługi wyrażeń regularnych najczęściej wykorzystuje się funkcje oparte na standardzie PCRE (Perl Compatible Regular Expressions), takie jak:
preg_match()
— sprawdza, czy dane wyrażenie regularne pasuje do ciągu.preg_match_all()
— wyszukuje wszystkie dopasowania.preg_replace()
— zamienia dopasowane fragmenty tekstu.
Przykłady wyrażeń regularnych w PHP
1. Proste dopasowanie liczby
$text = "Mam 2 koty.";
if (preg_match('/\d+/', $text, $matches)) {
echo "Znaleziono liczbę: " . $matches[0];
}
Opis: \d+
dopasowuje jedną lub więcej cyfr.
2. Walidacja adresu e-mail
$email = "example@example.com";
if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email)) {
echo "Poprawny adres e-mail.";
} else {
echo "Niepoprawny adres e-mail.";
}
Opis: Wyrażenie sprawdza poprawność struktury adresu e-mail.
3. Wyszukiwanie słów zaczynających się od litery "k"
$text = "kot i królik";
preg_match_all('/\bk\w*/i', $text, $matches);
print_r($matches);
Opis: \bk\w*
wyszukuje słowa zaczynające się na literę k
.
Wyrażenia regularne w JavaScript
W JavaScript wyrażenia regularne są obsługiwane przez obiekt RegExp
lub bezpośrednio poprzez literały regex, np. /pattern/flags
.
Najważniejsze metody to:
test()
— sprawdza, czy wyrażenie regularne pasuje do ciągu.exec()
— zwraca dopasowanie lubnull
.- Metody łańcuchowe:
match()
,replace()
,search()
,split()
.
Przykłady wyrażeń regularnych w JavaScript
1. Proste sprawdzenie obecności cyfry
const text = "Mam 2 koty.";
const regex = /\d+/;
console.log(regex.test(text)); // true
Opis: Wyrażenie /\d+/
sprawdza, czy tekst zawiera co najmniej jedną cyfrę.
2. Walidacja adresu e-mail
const email = "example@example.com";
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(regex.test(email)); // true
Opis: Podobnie jak w PHP, to wyrażenie sprawdza poprawność adresu e-mail.
3. Wyszukiwanie słów zaczynających się od litery "k"
const text = "kot i królik";
const matches = text.match(/\bk\w*/gi);
console.log(matches); // ["kot", "królik"]
Opis: Wyrażenie \bk\w*
wyszukuje słowa zaczynające się od litery k
, niezależnie od wielkości liter.
Zaawansowane przykłady wyrażeń regularnych
1. Wyszukiwanie dat w formacie "DD-MM-YYYY"
PHP:
$text = "Dzisiaj jest 01-02-2025.";
if (preg_match('/\b\d{2}-\d{2}-\d{4}\b/', $text, $matches)) {
echo "Znaleziono datę: " . $matches[0];
}
JavaScript:
const text = "Dzisiaj jest 01-02-2025.";
const regex = /\b\d{2}-\d{2}-\d{4}\b/;
const match = text.match(regex);
if (match) {
console.log("Znaleziono datę:", match[0]);
}
2. Ekstrakcja hashtagów z tekstu
PHP:
$text = "#programowanie jest super #php #javascript";
preg_match_all('/#\w+/', $text, $matches);
print_r($matches);
JavaScript:
const text = "#programowanie jest super #php #javascript";
const matches = text.match(/#\w+/g);
console.log(matches); // ["#programowanie", "#php", "#javascript"]
Zachęcam do zapoznania się z moją aplikacją do testowania obsługi wyrażeń regularnych PCRE w PHP.
Podsumowanie
Wyrażenia regularne są niezwykle wszechstronne i przydatne w pracy z tekstem. Zarówno PHP, jak i JavaScript oferują funkcje umożliwiające efektywne korzystanie z tej technologii. Zastosowanie wyrażeń regularnych może znaczenie uprościć rozwiązywanie problemów związanych z walidacją danych, wyszukiwaniem informacji oraz manipulacją tekstu.