Wyrażenie regularne to określony wzorzec, którego można użyć do dopasowywania, wyszukiwania i zastępowania dowolnego określonego ciągu w danych tekstowych. Jest to potężna funkcja każdego języka programowania. Służy głównie do wykonywania różnych rodzajów walidacji formularzy, takich jak walidacja poczty e-mail, sprawdzanie formatu telefonu, walidacja pól nazwy użytkownika i hasła w formularzu logowania itp. Dowolną konkretną treść tekstu można wyszukiwać i zastępować za pomocą wzorca wyrażenia regularnego. Jest również nazywany regex lub RegExp. Do zdefiniowania wzorca wyrażeń regularnych używane są różne typy symboli.
W PHP istnieje wiele wbudowanych funkcji dla wyrażeń regularnych. Jednym z nich jest funkcja preg_match(). Ta funkcja służy do dopasowywania określonego wzorca w danych ciągu. W tym samouczku wyjaśniono, jak funkcja preg_match() może być używana w PHP do wykonywania różnych zadań.
Składnia:
Int lub false preg_match (string $pattern, string $subject [, array &$matches = null [, int $flags = 0 [, int $offset = 0]]])Ta funkcja może przyjmować pięć argumentów. Pierwszy argument, $wzór, jest obowiązkowe, co określa wzór dopasowania for. Drugi argument, $temat, jest obowiązkowe i zawiera dane ciągu, w którym zostanie zastosowany wzorzec. Trzeci argument, $mecze, jest opcjonalny i zwraca tablicę opartą na dopasowaniu. Czwarty argument, $flagi, jest opcjonalny, który zawiera różne typy wartości flag w zależności od dopasowania. Piąty argument, $przesunięcie, jest opcjonalny i może być użyty do określenia pozycji początkowej wyszukiwania.
Przykład 1: Dopasuj wzorzec z uwzględnieniem wielkości liter i bez uwzględniania wielkości liter
Poniższy przykład pokazuje użycie funkcji preg_match() do dopasowywania ciągu znaków z rozróżnianiem wielkości liter i bez uwzględniania wielkości liter. Utwórz plik PHP za pomocą następującego skryptu.
Tutaj trzy wzorce są używane do zastosowania w trzech funkcjach preg_match(). Pierwszy wzór, '/Lubić/', służy do dopasowywania ciągu w sposób rozróżniający wielkość liter. Drugi wzór, '/lubić/', służy do dopasowywania ciągu w sposób rozróżniający wielkość liter. Trzeci wzór, 'Jak ja', służy do dopasowywania ciągu znaków bez uwzględniania wielkości liter. wyszukiwanie_wzorzec() funkcja jest zdefiniowana w skrypcie do używania funkcji preg_match() do dopasowania i drukuje komunikat na podstawie zwróconej wartości tej funkcji.
//Zdefiniuj tekst$text = "Lubię PHP. Lubię też JavaScript.";
//Zdefiniuj trzy rodzaje wzorców
$pattern1 = '/Lubię/';
$pattern2 = '/lubię/';
$wzór3 = '/Lubię/i';
//Zdefiniuj funkcję wyszukiwania wzorca w tekście
funkcja search_pattern($wzór, $ciąg)
if(preg_match($wzór, $ciąg))
echo "Wynik wyszukiwania: Znaleziono dopasowanie dla wzorca - $pattern
";
jeszcze
echo "Wynik wyszukiwania: Nie znaleziono dopasowania dla wzorca - $pattern
";
//Wydrukuj oryginalny tekst
echo "Oryginalny tekst to: $tekst
";
//Wywołaj funkcję trzy razy dla trzech wzorców
search_pattern($wzór1, $tekst);
search_pattern($wzór2, $tekst);
search_pattern($wzór3, $tekst);
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera. Pierwsza linia pokazuje tekst, w którym wyszukiwano wzory patterns. Druga linia pokazuje dane wyjściowe pierwszego wzoru. Trzecia linia pokazuje wynik drugiego wzoru. Czwarty wiersz pokazuje wynik trzeciego wzorca.
Przykład 2: Sprawdź poprawność adresu URL
Poniższy przykład pokazuje sposób sprawdzania poprawności adresu URL za pomocą funkcji preg_match()ch. Utwórz plik PHP za pomocą następującego skryptu.
Wartość adresu URL jest przypisywana w zmiennej $url do testowania. '@^(?:https://)?([^/]+)@i' ciąg znaków jest używany jako wzorzec w funkcji preg_match() do sprawdzenia, czy adres URL jest prawidłowy, czy nie. Jeśli jest poprawny, zostanie wydrukowana nazwa hosta i nazwa domeny, w przeciwnym razie zostanie wyświetlony komunikat o błędzie.
//Zdefiniuj adres URL$url = "https://www.linuxhint.pl";
//Zdefiniuj wzorzec do sprawdzania poprawności adresu URL
$wzór ='@^(?:https://)?([^/]+)@i';
//Sprawdź, czy adres URL jest prawidłowy, czy nie
if(preg_match($wzór, $url, $dopasowania1))
//Wydrukuj wiadomość o sukcesie
echo "URL jest prawidłowy.
";
//Wydrukuj tablicę zawierającą wartości dopasowania
echo "Wartości tablicy to: ";
print_r($pasuje1);
//Pobierz i wydrukuj wartość hosta
$host = $matches1[1];
Echo "
Nazwa hosta to: $host";
//Wyszukaj nazwę domeny z wartości hosta
preg_match('/[^.]+\.[^.]+$/', $host, $dopasowania2);
Echo "
Nazwa domeny to: $matches2[0]";
jeszcze
//Wydrukuj komunikat o błędzie
echo "Nieprawidłowy adres URL.";
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera. Podany adres URL w skrypcie jest prawidłowy. Tak więc dane wyjściowe pokazują wartości dopasowania $, nazwę hosta adresu URL i nazwę domeny adresu URL.
Przykład 3: Wyszukiwanie wzorca z wartościami flagi i przesunięcia
Poniższy przykład pokazuje użycie wartości flag i offset w funkcji preg_match()(). Utwórz plik PHP za pomocą następującego skryptu.
W skrypcie zastosowano trzy wzorce dla trzech typów dopasowania. W pierwszej funkcji preg_match() jako wzorzec używany jest '/(bangla)(desh)/', a jako wartość flagi używana jest wartość PREG_OFFSET_CAPTURE. Wartości $mecze zmienna będzie drukowana na podstawie wyniku pierwszej funkcji preg_match(). W drugiej funkcji preg_match() '/(bangla)(glad)*(desh)/i' jest używany jako wzorzec, a wartość flagi jest używana jako PREG_UNMATCHED_AS_NULL. Jeśli jakakolwiek część wzorca nie pasuje, w tablicy zostanie zapisana wartość NULL. Wartości $mecze zmienna będzie drukowana na podstawie wyniku drugiej funkcji preg_match(). W trzeciej funkcji preg_match() jako wzorzec używany jest '/glad/', używana jest wartość flagi, PREG_OFFSET_CAPTURE, a 3 jest używane jako wartość przesunięcia. Wartości $mecze zmienna będzie drukowana na podstawie danych wyjściowych trzeciej funkcji preg_match().
//Zdefiniuj wartość tekstową$text = "Bangladesz";
//Zdefiniuj trzy rodzaje wzorów
$pattern1 = '/(bangla)(desh)/i';
$pattern2 = '/(bangla)(zadowolony)*(desh)/i';
$wzór3 = '/chętnie/';
//Korzystanie z flagi PREG_OFFSET_CAPTURE
preg_match($wzór1, $tekst, $dopasowania, PREG_OFFSET_CAPTURE);
Echo "
";
print_r($pasuje);
Echo "
";
//Korzystanie z flagi PREG_UNMATCHED_AS_NULL
preg_match($wzór2, $tekst, $dopasowania, PREG_UNMATCHED_AS_NULL);
Echo "
";
print_r($pasuje);
Echo "
";
//Korzystanie z flagi PREG_OFFSET_CAPTURE i wartości przesunięcia
preg_match($wzór3, $tekst, $dopasowania, PREG_OFFSET_CAPTURE, 3);
Echo "
";";
print_r($pasuje);
Echo "
?>
Wynik:
Następujące dane wyjściowe pojawią się po uruchomieniu skryptu z serwera.
Wniosek
Użycie funkcji preg_match() zostało wyjaśnione w tym samouczku na wielu przykładach. Pokazano tu również zastosowania różnych argumentów tej funkcji. Czytelnicy będą mogli poprawnie używać tej funkcji w swoim skrypcie po przeczytaniu tego samouczka.