logo

Funkcija MySQL REGEXP_REPLACE().

Funkcija MySQL REGEXP_REPLACE() se uporablja za ujemanje vzorcev. Ta funkcija poišče v nizu vzorec regularnega izraza in zamenja vsako pojavitev vzorca s podanim nizom, ki se ujema z danim vzorcem regularnega izraza. Če je ujemanje najdeno, vrne celoten niz skupaj z zamenjavami. Če ni ujemanja, je vrnjeni niz nespremenjen. Če so izraz, vzorci in nadomestni niz NULL, bo funkcija vrnila NULL.

REGEXP_REPLACE(), REPLACE(), in TRANSLATE() funkcija v MySQL delujejo enako, le da nam TRANSLATE omogoča več zamenjav z enim znakom in funkcija REPLACE nadomesti en cel niz z drugim nizom, medtem ko REGEXP_REPLACE v nizu išče vzorec regularnega izraza.

Sintaksa

Sledi osnovna sintaksa za uporabo te funkcije v MySQL:

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

Parameter Razlaga

Razlaga parametrov funkcije REGEXP_REPLACE() je:

izraz: Je vhodni niz, na katerem bomo izvajali iskanje po parametrih in funkcijah regularnih izrazov.

vzorci: Predstavlja vzorec regularnega izraza za podniz.

zamenjaj_niz: To je podniz, ki bo nadomeščen, če se najde ujemanje.

Funkcija REGEXP_INSTR() uporablja različne neobvezne parametre, ki so navedeni spodaj:

položaj: Uporablja se za določitev položaja v izrazu znotraj niza za začetek iskanja. Če tega parametra ne podamo, se bo začel na mestu 1.

pojav: Uporablja se za določitev, za katero pojavnost ujemanja bomo iskali. Če tega parametra ne podamo, se zamenjajo vse pojavitve.

match_type: To je niz, ki nam omogoča izboljšanje regularnega izraza. Za ujemanje uporablja naslednje možne znake.

    c:Predstavlja ujemanje, ki razlikuje med velikimi in malimi črkami.jaz:Predstavlja ujemanje, ki ne razlikuje med velikimi in malimi črkami.m:Predstavlja večvrstični način, ki omogoča zaključke vrstic znotraj niza. Ta funkcija privzeto ujema zaključke vrstic na začetku in koncu niza.n:Uporablja se za spreminjanje . (pika) za ujemanje s končevalci vrstic.v:Predstavlja zaključke vrstic samo za Unix.

Naj to razumemo z različnimi primeri.

Primer

Naslednji stavek pojasnjuje osnovni primer funkcije REGEXP_REPLACE v MySQL.

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

Tukaj je rezultat:

Funkcija MySQL REGEXP_REPLACE().

Recimo, da naš vhodni niz vsebuje več ujemanj znotraj niza , bo ta funkcija nadomestila vse. Oglejte si spodnje izjave:

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

Tukaj je rezultat:

Funkcija MySQL REGEXP_REPLACE().

Če se vhodni niz in zamenljivi niz ne ujemata, stavki vrnejo izvirni niz. Oglejte si spodnji primer:

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

Tukaj je rezultat:

Funkcija MySQL REGEXP_REPLACE().

Če želimo zamenjati niz z določitev položaja za začetek zamenjave lahko uporabimo funkcijo REGEX_REPLACE na naslednji način:

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

V tej izjavi smo določili položaj kot 2 za začetek zamenjave. Z izvedbo te poizvedbe bomo dobili spodnji rezultat, kjer lahko vidimo, da prvi položaj zamenljivega niza ni zamenjan.

Funkcija MySQL REGEXP_REPLACE().

Vemo, da so vse pojavitve ujemajočega se niza privzeto zamenjane. Vendar pa imamo tudi možnost, da določimo določen pojav za zamenjavo ujemajočega se niza z uporabo pojav parameter. Oglejte si spodnji primer:

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

V tem primeru je začetni položaj zamenljivega niza 2, ki je prišel po začetku prvega pojavljanja. Zato je pojav 2 postal pojav 1, pojav 3 pa pojav 2. Oglejte si spodnji rezultat:

Funkcija MySQL REGEXP_REPLACE().

Dodamo lahko dodaten parameter za izboljšanje regularnega izraza z uporabo argumentov tipa ujemanja. Na primer , ga lahko uporabimo za preverjanje, ali ujemanje razlikuje med velikimi in malimi črkami ali vključuje zaključevalce vrstic. Oglejte si spodnji primer, kjer podajamo a razlikuje med velikimi in malimi črkami in ujemanje, ki ne razlikuje med velikimi in malimi črkami:

 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'; 

Tukaj je rezultat:

Funkcija MySQL REGEXP_REPLACE().