Dopasowywanie za pomocą preg_match
Testuj ciągi względem wzorców i przechwytuj grupy
Dopasowywanie za pomocą preg_match to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Sygnatura preg_match()
preg_match($pattern, $subject, &$matches) zwraca 1, jeśli wzorzec zostanie dopasowany, 0, jeśli nie zostanie dopasowany, albo false w przypadku błędu.
Prosty test dopasowania
Użyj preg_match jako testu logicznego — wartość zwrotna 1 oznacza znalezienie dopasowania.
<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
echo "Looks like an email";
}Grupy przechwytujące z użyciem $matches
$matches[0] zawiera pełne dopasowanie, a $matches[1], $matches[2] itd. zawierają grupy przechwytujące.
<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"Nazwane przechwytywanie
Użyj (?P<name>...) dla nazwanych grup przechwytujących — dostęp uzyskuje się za pomocą $matches["name"].
<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
'2025-06-15', $m);
echo $m['year']; // 2025Parametr offsetu
Czwarty parametr określa miejsce w ciągu, od którego należy rozpocząć dopasowywanie (offset w bajtach).
<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"PREG_OFFSET_CAPTURE
Pobiera zarówno wartość dopasowania, jak i jego offset w bajtach.
<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)preg_match_all()
preg_match_all() znajduje wszystkie dopasowania i zwraca ich liczbę.
<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]Przykład sprawdzania adresu e-mail
Praktyczny regex dla adresu e-mail:
<?php
function isEmail(string $s): bool {
return (bool) preg_match(
'/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
$s
);
}Sprawdzanie numeru telefonu
Sprawdzaj międzynarodowe numery telefonów:
<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);Obsługa błędów
Jeśli wzorzec jest nieprawidłowy, preg_match() zwraca false. Sprawdź to za pomocą === false, a szczegóły pobierz przy użyciu preg_last_error().
Wskazówka dotycząca wydajności
PHP wewnętrznie buforuje skompilowane wzorce PCRE — jeśli używasz tego samego regexu w pętli, nie musisz wykonywać dodatkowych czynności.
Kiedy nie używać regexów
W przypadku danych strukturalnych PHP udostępnia dedykowane funkcje: filter_var(FILTER_VALIDATE_EMAIL), parse_url() — należy preferować je zamiast własnoręcznie tworzonych regexów.
Szybkie sprawdzenie
Co zawiera $matches[0] po wywołaniu preg_match?
Często zadawane pytania
Czy lekcja „Dopasowywanie za pomocą preg_match” jest bezpłatna?
Tak — pełny tekst „Dopasowywanie za pomocą preg_match” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Dopasowywanie za pomocą preg_match”?
Testuj ciągi względem wzorców i przechwytuj grupy Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Dopasowywanie za pomocą preg_match”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy składni wyrażeń regularnych
- Dopasowywanie za pomocą preg_match
- Zastępowanie tekstu za pomocą preg_replace
- Dzielenie ciągów i praktyczne wzorce