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 typó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ą wyrażenia regularnego wzór. 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. Sposób użycia funkcji preg_match() w PHP do wykonywania różnych zadań jest wyjaśniony w tym samouczku.
Składnia:
Int lubfałszywe preg_match (strunowy$wzór,strunowy$temat [, szyk &$mecze = zero [,int$flagi = 0 [,int$przesunięcie = 0]]])Ta funkcja może przyjmować pięć argumentów. Pierwszy argument, $wzór , jest obowiązkowy, który definiuje wzorzec dopasowania. 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 i zawiera różne typy wartości flag w zależności od dopasowania. Piąty argument, $przesunięcie , jest opcjonalny i może służyć do określenia początkowej pozycji wyszukiwania.
Przykład 1: Dopasuj wzorzec z uwzględnieniem wielkości liter i bez uwzględniania wielkości liter
Poniższy przykład ilustruje użycie funkcji preg_match() do dopasowywania ciągu znaków z uwzględnieniem wielkości liter i 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 bez uwzględniania wielkości liter. wyszukiwanie_wzorzec() Funkcja jest zdefiniowana w skrypcie do używania funkcji preg_match() do dopasowywania i drukuje komunikat na podstawie zwróconej wartości tej funkcji.
//Zdefiniuj tekst
$tekst = „Lubię PHP. Lubię też JavaScript.';
//Zdefiniuj trzy rodzaje wzorców
$wzór1 = '/Lubić/';
$wzór2 = '/lubić/';
$wzór3 = '/Jak ja';
//Zdefiniuj funkcję wyszukiwania wzorca w tekście
funkcjonowaćsearch_pattern($wzór, $string)
{
Jeśli( preg_match ($wzór, $string))
wyrzucił 'Wynik wyszukiwania: Znaleziono dopasowanie dla wzorca -$wzór
';
w przeciwnym razie
wyrzucił 'Wynik wyszukiwania: Nie znaleziono dopasowania do wzorca -$wzór
';
}
//Wydrukuj oryginalny tekst
wyrzucił „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);
?>
Wyjście :
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu z serwera. Pierwsza linia pokazuje tekst, w którym wyszukiwane były wzorce. Druga linia pokazuje wyjście pierwszego wzoru. Trzecia linia pokazuje wyjście drugiego wzoru. Czwarta linia pokazuje wyjście trzeciego wzoru.
Przykład 2: Sprawdź poprawność adresu URL
Poniższy przykład pokazuje sposób sprawdzania poprawności adresu URL za pomocą funkcji preg_match(). Utwórz plik PHP za pomocą następującego skryptu.
Wartość adresu URL jest przypisywana w zmiennej $url do testowania. Ciąg „@^(?:https://)?([^/]+)@i” jest używany jako wzorzec w funkcji preg_match() do sprawdzenia, czy adres URL jest prawidłowy, czy nie. Jeśli jest prawidłowy, zostanie wydrukowana nazwa hosta i nazwa domeny, w przeciwnym razie zostanie wydrukowany komunikat o błędzie.
//Zdefiniuj adres URL
$url = „https://www.linuxhint.com”;
//Zdefiniuj wzorzec do sprawdzania poprawności adresu URL
$wzór ='@^(?:https://)?([^/]+)@i';
//Sprawdź, czy adres URL jest prawidłowy, czy nie
Jeśli( preg_match ($wzór, $url, $mecze1))
{
//Wydrukuj wiadomość o sukcesie
wyrzucił 'Adres URL jest prawidłowy.
';
//Wydrukuj tablicę zawierającą wartości dopasowania
wyrzucił 'Wartości tablicy to: ';
print_r ($mecze1);
//Pobierz i wydrukuj wartość hosta
$host = $mecze1[1];
wyrzucił '
Nazwa hosta to:$host';
//Wyszukaj nazwę domeny z wartości hosta
preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $host, $mecze2);
wyrzucił '
Nazwa domeny to:{$matches2[0]}';
}
w przeciwnym razie
{
//Wydrukuj komunikat o błędzie
wyrzucił 'Nieprawidłowy URL.';
}
?>
Wyjście :
Poniższe 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 zostanie wydrukowana na podstawie wyniku pierwszej funkcji preg_match(). W drugiej funkcji preg_match() „/(bangla)(glad)*(desh)/i” jest używany jako wzorzec, a wartość flagi, PREG_UNMATCHED_AS_NULL. Jeśli jakakolwiek część wzorca nie pasuje, w tablicy zostanie zapisana wartość NULL. Wartości $mecze zmienna zostanie wydrukowana na podstawie wyniku drugiej funkcji preg_match(). W trzeciej funkcji preg_match() jako wzorzec używany jest „/glad/”, wartość flagi, PREG_OFFSET_CAPTURE, a 3 jako wartość przesunięcia. Wartości $mecze zmienna zostanie wydrukowana na podstawie wyniku trzeciej funkcji preg_match().
//Zdefiniuj wartość tekstową
$tekst = 'Bangladesz';
//Zdefiniuj trzy rodzaje wzorów
$wzór1 = '/ (bangla) (desz) / ja';
$wzór2 = '/ (bangla) (rad) * (desh) / ja';
$wzór3 = '/zadowolony/';
//Korzystanie z flagi PREG_OFFSET_CAPTURE
preg_match ($wzór1, $tekst, $mecze,PREG_OFFSET_CAPTURE);
wyrzucił '
';
print_r ($matches);
echo '
';
//Korzystanie z flagi PREG_UNMATCHED_AS_NULL
preg_match ($wzór2, $tekst, $mecze,PREG_UNMATCHED_AS_NULL);
wyrzucił '
';
print_r ($matches);
echo '
';
//Korzystanie z flagi PREG_OFFSET_CAPTURE i wartości przesunięcia
preg_match ($wzór3, $tekst, $mecze,PREG_OFFSET_CAPTURE, 3);
wyrzucił '
';
print_r ($matches);
echo '';
?>
Wyjście :
Poniższe 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.