0Pricing
PHP Academy · Lekcja

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'];  // 2025

Parametr 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

  1. Podstawy składni wyrażeń regularnych
  2. Dopasowywanie za pomocą preg_match
  3. Zastępowanie tekstu za pomocą preg_replace
  4. Dzielenie ciągów i praktyczne wzorce
← Powrót do PHP Academy