logo

Funcția MySQL REGEXP_REPLACE().

Funcția MySQL REGEXP_REPLACE() este utilizată pentru potrivirea modelelor. Această funcție caută într-un șir un model de expresie regulată și înlocuiește fiecare apariție a modelului cu șirul specificat care se potrivește cu modelul de expresie regulată dat. Dacă se găsește potrivirea, returnează întregul șir împreună cu înlocuitorii. Dacă nu se găsește nicio potrivire, șirul returnat rămâne neschimbat. Dacă expresia, modelele și șirul de înlocuire sunt NULL, funcția va returna NULL.

REGEXP_REPLACE(), REPLACE(), și TRANSLATE() functioneaza in MySQL funcționează la fel, cu excepția faptului că TRANSLATE ne permite să facem mai multe substituții cu un singur caracter și funcția REPLACE înlocuiește un șir întreg cu un alt șir, în timp ce REGEXP_REPLACE caută un șir pentru un model de expresie regulată.

Sintaxă

Următoarea este o sintaxă de bază pentru a utiliza această funcție în MySQL:

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

Explicația parametrului

Explicația parametrilor funcției REGEXP_REPLACE() sunt:

expresie: Este un șir de intrare pe care vom efectua căutarea prin parametrii și funcțiile expresiilor regulate.

modele: Reprezintă modelul de expresie regulată pentru un subșir.

înlocuiți șir: Este un subșir care va fi înlocuit dacă se găsește potrivirea.

vba

Funcția REGEXP_INSTR() utilizează diverși parametri opționali care sunt dați mai jos:

poz: Este folosit pentru a specifica poziția în expresie în cadrul șirului pentru a începe căutarea. Dacă nu specificăm acest parametru, acesta va începe de la poziția 1.

apariție: Este folosit pentru a specifica ce apariție a unei potriviri vom căuta. Dacă nu specificăm acest parametru, toate aparițiile sunt înlocuite.

tip_potrivire: Este un șir care ne permite să rafinăm expresia regulată. Utilizează următoarele caractere posibile pentru a efectua potrivirea.

    c:Reprezintă o potrivire sensibilă la majuscule.eu:Reprezintă o potrivire care nu ține seama de majuscule.m:Reprezintă un mod cu mai multe linii care permite terminatoare de linie în șir. În mod implicit, această funcție se potrivește cu terminatorii de linie la începutul și la sfârșitul șirului.n:Este folosit pentru a modifica . (punct) caracter pentru a se potrivi cu terminatorii de linie.în:Reprezintă terminațiile de linie numai pentru Unix.

Să-l înțelegem cu diverse exemple.

java inversând un șir

Exemplu

Următoarea declarație explică exemplul de bază al funcției REGEXP_REPLACE din MySQL.

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

Iată rezultatul:

Funcția MySQL REGEXP_REPLACE().

Să presupunem că șirul nostru de intrare conține potriviri multiple în cadrul șirului , atunci această funcție le va înlocui pe toate. Vezi declarațiile de mai jos:

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

Iată rezultatul:

Funcția MySQL REGEXP_REPLACE().

Dacă șirul de intrare și șirul înlocuibil nu au nicio potrivire, instrucțiunile returnează șirul original. Vezi exemplul de mai jos:

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

Iată rezultatul:

Funcția MySQL REGEXP_REPLACE().

Dacă vrem să înlocuim șirul cu precizând poziţia pentru a începe înlocuirea, putem folosi funcția REGEX_REPLACE după cum urmează:

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

În această declarație, am specificat poziția ca 2 pentru a începe înlocuirea. Executând această interogare, vom obține rezultatul de mai jos, unde putem vedea că prima poziție a șirului înlocuibil nu este înlocuită.

Funcția MySQL REGEXP_REPLACE().

Știm că toate aparițiile șirului de potrivire sunt înlocuite implicit. Cu toate acestea, avem și o opțiune de a specifica apariția specifică pentru înlocuirea șirului de potrivire folosind apariția parametru. Vezi exemplul de mai jos:

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

În acest exemplu, poziția de pornire a șirului înlocuibil este 2 care a venit după ce a început prima apariție. Prin urmare, apariția 2 a devenit apariția 1, iar apariția 3 a devenit apariția 2. Vedeți rezultatul de mai jos:

Funcția MySQL REGEXP_REPLACE().

Putem furniza un parametru suplimentar pentru a rafina expresia regulată utilizând argumentele tipului de potrivire. De exemplu , îl putem folosi pentru a verifica dacă potrivirea este sensibilă la majuscule sau include terminatori de linie. Vezi exemplul de mai jos în care specificăm a caz sensibil și potrivire fără majuscule:

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

Iată rezultatul:

Funcția MySQL REGEXP_REPLACE().