logo

Funkcija MySQL REGEXP_REPLACE().

Funkcija MySQL REGEXP_REPLACE() koristi se za podudaranje uzoraka. Ova funkcija traži u nizu uzorak regularnog izraza i zamjenjuje svako pojavljivanje uzorka s navedenim nizom koji odgovara zadanom uzorku regularnog izraza. Ako se pronađe podudaranje, vraća cijeli niz zajedno sa zamjenama. Ako se ne pronađe podudaranje, vraćeni niz je nepromijenjen. Ako su izraz, uzorci i zamjenski niz NULL, funkcija će vratiti NULL.

REGEXP_REPLACE(), REPLACE(), i TRANSLATE() funkcija u MySQL rade isto, osim što nam TRANSLATE omogućuje višestruke zamjene od jednog znaka, a funkcija REPLACE zamjenjuje jedan cijeli niz drugim nizom, dok REGEXP_REPLACE traži niz za uzorak regularnog izraza.

Sintaksa

Slijedi osnovna sintaksa za korištenje ove funkcije u MySQL-u:

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

Parametar Objašnjenje

Objašnjenje parametara funkcije REGEXP_REPLACE() je:

izraz: To je ulazni niz na kojem ćemo vršiti pretragu parametara i funkcija regularnih izraza.

uzorci: Predstavlja uzorak regularnog izraza za podniz.

zamijeni_string: To je podniz koji će biti zamijenjen ako se pronađe podudaranje.

Funkcija REGEXP_INSTR() koristi razne izborne parametre koji su navedeni u nastavku:

položaj: Koristi se za određivanje položaja u izrazu unutar niza za početak pretraživanja. Ako ne navedemo ovaj parametar, počet će na poziciji 1.

pojava: Koristi se za određivanje za koju pojavu podudaranja ćemo tražiti. Ako ne navedemo ovaj parametar, sva se pojavljivanja zamjenjuju.

match_type: To je niz koji nam omogućuje pročišćavanje regularnog izraza. Za uparivanje koristi sljedeće moguće znakove.

    c:Predstavlja podudaranje koje razlikuje velika i mala slova.ja:Predstavlja podudaranje bez obzira na velika i mala slova.m:Predstavlja način rada s više redaka koji dopušta terminatore reda unutar niza. Prema zadanim postavkama, ova funkcija odgovara terminatorima retka na početku i kraju niza.n:Koristi se za modificiranje . (točka) znak za podudaranje terminatora retka.u:Predstavlja završetke redaka samo za Unix.

Razumimo to na raznim primjerima.

Primjer

Sljedeća izjava objašnjava osnovni primjer funkcije REGEXP_REPLACE u MySQL-u.

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

Evo rezultata:

Funkcija MySQL REGEXP_REPLACE().

Pretpostavimo da naš ulazni niz sadrži više podudaranja unutar niza , onda će ova funkcija zamijeniti sve njih. Pogledajte izjave u nastavku:

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

Evo rezultata:

Funkcija MySQL REGEXP_REPLACE().

Ako ulazni niz i zamjenjivi niz nemaju podudaranja, izjave vraćaju izvorni niz. Pogledajte primjer u nastavku:

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

Evo rezultata:

Funkcija MySQL REGEXP_REPLACE().

Ako želimo zamijeniti niz za navodeći položaj za početak zamjene možemo koristiti funkciju REGEX_REPLACE na sljedeći način:

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

U ovoj izjavi naveli smo poziciju 2 za početak zamjene. Izvršavajući ovaj upit, dobit ćemo donji izlaz gdje možemo vidjeti da prva pozicija zamjenjivog niza nije zamijenjena.

Funkcija MySQL REGEXP_REPLACE().

Znamo da su sva pojavljivanja odgovarajućeg niza zamijenjena prema zadanim postavkama. Međutim, također imamo opciju za specificiranje specifične pojave za zamjenu odgovarajućeg niza pomoću pojava parametar. Pogledajte primjer u nastavku:

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

U ovom primjeru, početna pozicija zamjenjivog niza je 2 koja je došla nakon što je počelo prvo pojavljivanje. Stoga je pojava 2 postala pojava 1, a pojava 3 postala je pojava 2. Pogledajte donji rezultat:

Funkcija MySQL REGEXP_REPLACE().

Možemo osigurati dodatni parametar za pročišćavanje regularnog izraza korištenjem argumenata tipa podudaranja. Na primjer , možemo ga upotrijebiti za provjeru je li podudaranje osjetljivo na velika i mala slova ili uključuje terminatore retka. Pogledajte donji primjer gdje specificiramo a osjetljivo na velika i mala slova i podudaranje koje ne razlikuje velika i mala slova:

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

Evo rezultata:

Funkcija MySQL REGEXP_REPLACE().