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
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:
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į
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:
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.
Ž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į:
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: