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.
É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:
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:
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:
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.
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:
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: