php

Użycie funkcji preg_match() w PHP

Użycie funkcji preg_match() w PHP

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.

Gry Najlepsze gry wiersza poleceń dla systemu Linux
Najlepsze gry wiersza poleceń dla systemu Linux
Wiersz poleceń jest nie tylko twoim największym sprzymierzeńcem podczas korzystania z Linuksa - może być również źródłem rozrywki, ponieważ możesz go ...
Gry Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Jeśli lubisz grać w gry na Linuksie za pomocą gamepada zamiast typowego systemu wprowadzania klawiatury i myszy, jest kilka przydatnych aplikacji dla ...
Gry Przydatne narzędzia dla graczy Linuksa
Przydatne narzędzia dla graczy Linuksa
Jeśli lubisz grać w gry w systemie Linux, prawdopodobnie używałeś aplikacji i narzędzi, takich jak Wine, Lutris i OBS Studio, aby poprawić wrażenia z ...