logo

Funkcja MySQL REGEXP_REPLACE().

Do dopasowywania wzorców używana jest funkcja MySQL REGEXP_REPLACE(). Ta funkcja przeszukuje ciąg znaków w poszukiwaniu wzorca wyrażenia regularnego i zastępuje każde wystąpienie wzorca z określonym ciągiem pasującym do podanego wzorca wyrażenia regularnego. Jeśli dopasowanie zostanie znalezione, zwraca cały ciąg znaków wraz z zamiennikami. Jeśli nie zostanie znalezione żadne dopasowanie, zwrócony ciąg znaków pozostaje niezmieniony. Jeśli wyrażenie, wzorce i ciąg zastępczy mają wartość NULL, funkcja zwróci wartość NULL.

REGEXP_REPLACE(), ZAMIEŃ(), I PRZETŁUMACZ() funkcjonować w MySQL'a działają tak samo, z tą różnicą, że TRANSLATE pozwala nam na dokonywanie wielu jednoznakowych podstawień, a funkcja REPLACE zastępuje cały ciąg innym ciągiem, podczas gdy REGEXP_REPLACE wyszukuje w ciągu znaków wzorzec wyrażenia regularnego.

Składnia

Poniżej znajduje się podstawowa składnia korzystania z tej funkcji w MySQL:

 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

Wyjaśnienie parametrów

Wyjaśnienie parametrów funkcji REGEXP_REPLACE() jest następujące:

wyrażenie: Jest to ciąg wejściowy, po którym będziemy przeszukiwać parametry i funkcje wyrażeń regularnych.

lista tworzenia Java

wzory: Reprezentuje wzorzec wyrażenia regularnego dla podciągu.

zamień_ciąg: Jest to podciąg, który zostanie zastąpiony w przypadku znalezienia dopasowania.

Funkcja REGEXP_INSTR() wykorzystuje różne opcjonalne parametry podane poniżej:

pozycja: Służy do określenia pozycji w wyrażeniu w ciągu znaków, aby rozpocząć wyszukiwanie. Jeśli nie określimy tego parametru, zacznie on od pozycji 1.

występowanie: Służy do określenia, dla jakiego wystąpienia dopasowania będziemy szukać. Jeśli nie określimy tego parametru, zastąpione zostaną wszystkie wystąpienia.

typ_dopasowania: Jest to ciąg znaków, który pozwala nam udoskonalić wyrażenie regularne. Do dopasowania używa następujących możliwych znaków.

kolejne typy danych
    C:Reprezentuje dopasowanie z uwzględnieniem wielkości liter.I:Reprezentuje dopasowanie bez uwzględniania wielkości liter.M:Reprezentuje tryb wielowierszowy, który pozwala na użycie terminatorów linii w ciągu. Domyślnie ta funkcja dopasowuje terminatory linii na początku i na końcu łańcucha.N:Służy do modyfikacji pliku . (kropka) znak pasujący do terminatorów linii.W:Reprezentuje zakończenia linii tylko w systemie Unix.

Wyjaśnijmy to na różnych przykładach.

Przykład

Poniższa instrukcja wyjaśnia podstawowy przykład funkcji REGEXP_REPLACE w MySQL.

 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

Oto dane wyjściowe:

Funkcja MySQL REGEXP_REPLACE().

Załóżmy, że nasz ciąg wejściowy zawiera wiele dopasowań w ciągu , to ta funkcja zastąpi je wszystkie. Zobacz poniższe stwierdzenia:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String'; 

Oto dane wyjściowe:

Funkcja MySQL REGEXP_REPLACE().

Jeśli ciąg wejściowy i ciąg wymienny nie są zgodne, instrukcje zwracają oryginalny ciąg. Zobacz poniższy przykład:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String'; 

Oto dane wyjściowe:

ile lat ma Pete Davidson
Funkcja MySQL REGEXP_REPLACE().

Jeśli chcemy zastąpić ciąg przez określenie stanowiska aby rozpocząć zamianę, możemy użyć funkcji REGEX_REPLACE w następujący sposób:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

W tym zestawieniu określiliśmy pozycję jako 2, aby rozpocząć wymianę. Wykonując to zapytanie, otrzymamy poniższy wynik, w którym możemy zobaczyć, że pierwsza pozycja ciągu wymiennego nie została zastąpiona.

Funkcja MySQL REGEXP_REPLACE().

Wiemy, że wszystkie wystąpienia pasującego ciągu są domyślnie zastępowane. Jednakże mamy również opcję określenia konkretnego wystąpienia zastępującego pasujący ciąg za pomocą występowanie parametr. Zobacz poniższy przykład:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String'; 

W tym przykładzie pozycją początkową ciągu wymiennego jest 2, która pojawiła się po rozpoczęciu pierwszego wystąpienia. Zatem zdarzenie 2 stało się zdarzeniem 1, a zdarzenie 3 stało się zdarzeniem 2. Zobacz poniższe dane wyjściowe:

Funkcja MySQL REGEXP_REPLACE().

Możemy podać dodatkowy parametr w celu uściślenia wyrażenia regularnego za pomocą argumentów typu dopasowania. Na przykład , możemy go użyć do sprawdzenia, czy w dopasowaniu uwzględniana jest wielkość liter lub czy uwzględniane są terminatory linii. Zobacz poniższy przykład, w którym określamy a wielkość liter ma znaczenie I dopasowanie bez uwzględniania wielkości liter:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'c') AS ' Case-Sensitive', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'i') AS ' Case-Insensitive'; 

Oto dane wyjściowe:

Funkcja MySQL REGEXP_REPLACE().