logo

MySQL REGEXP_REPLACE() funkcija

Funkcija MySQL REGEXP_REPLACE() naudojama šablonų suderinimui. Ši funkcija ieško reguliariosios išraiškos šablono eilutėje ir pakeičia kiekvieną šablono atvejį su nurodyta eilute, atitinkančia nurodytą reguliariosios išraiškos šabloną. Jei atitikmuo randamas, ji grąžina visą eilutę kartu su pakaitalais. Jei atitikmens nerasta, grąžinama eilutė nepakeičiama. Jei išraiška, šablonai ir pakeitimo eilutė yra NULL, funkcija grąžins NULL.

REGEXP_REPLACE(), REPLACE(), ir TRANSLATE () funkcija in MySQL veikia taip pat, išskyrus tai, kad TRANSLATE leidžia atlikti kelis vieno simbolio pakaitalus, o funkcija REPLACE pakeičia vieną visą eilutę kita eilute, o REGEXP_REPLACE ieško reguliariosios išraiškos šablono eilutės.

Sintaksė

Toliau pateikiama pagrindinė šios funkcijos naudojimo MySQL sintaksė:

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

Parametrų paaiškinimas

Funkcijos REGEXP_REPLACE() parametrų paaiškinimas yra toks:

išraiška: Tai įvesties eilutė, kurioje atliksime paiešką pagal įprastų posakių parametrus ir funkcijas.

java pabaiga

modeliai: Tai reiškia reguliariosios poeilės išraiškos šabloną.

pakeisti_eilutė: Tai poeilutė, kuri bus pakeista, jei bus rasta atitiktis.

Funkcija REGEXP_INSTR() naudoja įvairius pasirenkamus parametrus, kurie pateikiami toliau:

poz: Jis naudojamas norint nurodyti poziciją išraiškoje eilutėje, kad būtų pradėta paieška. Jei šio parametro nenurodysime, jis prasidės nuo 1 padėties.

įvykis: Jis naudojamas norint nurodyti, kurio atitikmens atvejo ieškosime. Jei šio parametro nenurodome, visi įvykiai pakeičiami.

match_type: Tai eilutė, leidžianti patobulinti reguliariąją išraišką. Suderinimui naudojami šie galimi simboliai.

miestas JAV
    c:Tai rodo didžiųjų ir mažųjų raidžių atitikimą.aš:Tai atitinka didžiųjų ir mažųjų raidžių skirtumą.m:Tai reiškia kelių eilučių režimą, leidžiantį eilutėje užbaigti eilutes. Pagal numatytuosius nustatymus ši funkcija atitinka eilutės pabaigtuvus eilutės pradžioje ir pabaigoje.n:Jis naudojamas modifikuoti . (taškas) simbolis, atitinkantis eilutės užbaigimo žodžius.in:Tai reiškia tik Unix eilučių pabaigą.

Supraskime tai įvairiais pavyzdžiais.

Pavyzdys

Šis teiginys paaiškina pagrindinį MySQL funkcijos REGEXP_REPLACE pavyzdį.

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

Štai išvestis:

MySQL REGEXP_REPLACE() funkcija

Tarkime, kad mūsų įvesties eilutėje yra kelios atitikties eilutėje , tada ši funkcija pakeis juos visus. Žiūrėkite toliau pateiktus teiginius:

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

Štai išvestis:

eilutę ir stulpelį
MySQL REGEXP_REPLACE() funkcija

Jei įvesties eilutė ir keičiama eilutė nesutampa, teiginiai grąžina pradinę eilutę. Žiūrėkite toliau pateiktą pavyzdį:

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

Štai išvestis:

MySQL REGEXP_REPLACE() funkcija

Jei norime pakeisti eilutę nurodant poziciją norėdami pradėti keitimą, galime naudoti funkciją REGEX_REPLACE taip:

sveikasis skaičius į dvigubą java
 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

Šiame pareiškime nurodėme 2 poziciją, kad būtų pradėtas pakeitimas. Vykdydami šią užklausą gausime žemiau pateiktą išvestį, kurioje pamatysime, kad pirmoji keičiamos eilutės padėtis nėra pakeista.

MySQL REGEXP_REPLACE() funkcija

Žinome, kad visi atitinkamos eilutės atvejai yra pakeisti pagal numatytuosius nustatymus. Tačiau mes taip pat turime galimybę nurodyti konkretų atvejį, kai reikia pakeisti atitinkančią eilutę naudodami įvykis parametras. Žiūrėkite toliau pateiktą pavyzdį:

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

Šiame pavyzdyje keičiamos eilutės pradinė padėtis yra 2, kuri atsirado po to, kai prasidėjo pirmasis įvykis. Todėl 2 įvykis tapo 1 įvykiu, o 3 įvykis tapo 2 įvykiu. Žiūrėkite toliau pateiktą išvestį:

MySQL REGEXP_REPLACE() funkcija

Naudodami atitikties tipo argumentus galime pateikti papildomą parametrą, skirtą reguliariajai išraiškai patikslinti. Pavyzdžiui , galime jį naudoti norėdami patikrinti, ar atitiktyje skiriamos didžiosios ir mažosios raidės, ar yra eilutės užbaigimo ženklų. Žiūrėkite toliau pateiktą pavyzdį, kuriame nurodome a didžiosios ir mažosios raidės ir didžiųjų ir mažųjų raidžių atitikmuo:

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

Štai išvestis:

MySQL REGEXP_REPLACE() funkcija