logo

MySQL REGEXP_REPLACE() függvény

A MySQL REGEXP_REPLACE() függvény a mintaillesztésre szolgál. Ez a funkció egy karakterláncban keres egy reguláris kifejezésmintát, és lecseréli a minta minden előfordulását a megadott karakterlánccal, amely megfelel az adott reguláris kifejezés mintájának. Ha az egyezés megtalálható, akkor a teljes karakterláncot visszaadja a cserékkel együtt. Ha nem található egyezés, a visszaadott karakterlánc változatlan. Ha a kifejezés, a minták és a helyettesítő karakterlánc NULL, a függvény NULL értéket ad vissza.

tartalmazza a c programozást

REGEXP_REPLACE(), REPLACE(), és a TRANSLATE() funkció be MySQL Az are ugyanúgy működik, kivéve, hogy a TRANSLATE lehetővé teszi több egykarakteres helyettesítést, és a REPLACE függvény egy teljes karakterláncot lecserél egy másik karakterláncra, míg a REGEXP_REPLACE egy karakterláncban keres egy reguláris kifejezésmintát.

Szintaxis

A következő egy alapvető szintaxis a funkció használatához a MySQL-ben:

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

Paraméter magyarázata

A REGEXP_REPLACE() függvény paramétereinek magyarázata:

kifejezés: Ez egy bemeneti karakterlánc, amelyen a reguláris kifejezések paraméterei és függvényei között keresünk.

minták: Egy részkarakterlánc reguláris kifejezési mintáját képviseli.

csere_karakterlánc: Ez egy részkarakterlánc, amely lecserélésre kerül, ha a találat megtalálható.

A REGEXP_INSTR() függvény különféle választható paramétereket használ, amelyeket alább adunk meg:

pozíció: A kifejezés pozíciójának megadására szolgál a karakterláncon belül a keresés elindításához. Ha nem adjuk meg ezt a paramétert, akkor az 1-es pozícióból indul.

esemény: Arra szolgál, hogy meghatározzuk, hogy az egyezés melyik előfordulását keressük. Ha nem adjuk meg ezt a paramétert, minden előfordulás lecserélődik.

match_type: Ez egy karakterlánc, amely lehetővé teszi a reguláris kifejezés finomítását. A következő lehetséges karaktereket használja az egyeztetéshez.

    c:A kis- és nagybetűk közötti egyeztetést jelenti.én:A kis- és nagybetűk közötti egyezést jelenti.m:Ez egy többsoros módot jelent, amely lehetővé teszi a sorlezárókat a karakterláncon belül. Alapértelmezés szerint ez a függvény megegyezik a karakterlánc elején és végén található sorlezárókkal.n:A . (pont) karakter, hogy megfeleljen a sorzáró karaktereknek.ban ben:Csak Unix-os sorvégződéseket jelöl.

Értsük meg különféle példákon keresztül.

Példa

A következő utasítás a MySQL REGEXP_REPLACE függvényének alapvető példáját magyarázza.

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

Íme a kimenet:

MySQL REGEXP_REPLACE() függvény

Tegyük fel, hogy a bemeneti karakterláncunk tartalmazza több egyezés a karakterláncon belül , akkor ez a funkció mindegyiket lecseréli. Lásd az alábbi állításokat:

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

Íme a kimenet:

MySQL REGEXP_REPLACE() függvény

Ha a bemeneti karakterlánc és a cserélhető karakterlánc nem egyezik, az utasítások az eredeti karakterláncot adják vissza. Lásd az alábbi példát:

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

Íme a kimenet:

MySQL REGEXP_REPLACE() függvény

Ha a karakterláncot a következőre akarjuk cserélni a pozíció megadása a csere elindításához használhatjuk a REGEX_REPLACE függvényt az alábbiak szerint:

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

Ebben a nyilatkozatban a 2-es pozíciót adtuk meg a csere megkezdéséhez. Ezt a lekérdezést végrehajtva az alábbi kimenetet kapjuk, ahol láthatjuk, hogy a cserélhető karakterlánc első pozíciója nincs lecserélve.

MySQL REGEXP_REPLACE() függvény

Tudjuk, hogy az egyező karakterlánc minden előfordulása alapértelmezés szerint lecserélésre kerül. Lehetőségünk van azonban arra is, hogy megadjuk az egyező karakterlánc cseréjének konkrét előfordulását a esemény paraméter. Lásd az alábbi példát:

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

Ebben a példában a cserélhető karakterlánc kezdőpozíciója 2, amely az első előfordulás kezdete után jött. Ezért a 2. előfordulásból 1. előfordulás, a 3. előfordulásból pedig 2. előfordulás lett. Lásd az alábbi kimenetet:

MySQL REGEXP_REPLACE() függvény

Adhatunk egy további paramétert a reguláris kifejezés finomításához a match type argumentumok használatával. Például , segítségével ellenőrizhetjük, hogy az egyezés megkülönbözteti-e a kis- és nagybetűket, vagy tartalmaz-e sorzárókat. Lásd az alábbi példát, ahol megadjuk a Kis-nagybetű érzékeny és kis- és nagybetűk közötti egyezés:

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

Íme a kimenet:

MySQL REGEXP_REPLACE() függvény