logo

MySQL REGEXP_REPLACE() -funktio

MySQL REGEXP_REPLACE() -funktiota käytetään kuvioiden täsmäämiseen. Tämä toiminto etsii merkkijonosta säännöllisen lausekkeen mallia ja korvaa jokaisen kaavan esiintymän määritetyllä merkkijonolla, joka vastaa annettua säännöllisen lausekkeen mallia. Jos osuma löytyy, se palauttaa koko merkkijonon vaihtoineen. Jos vastaavuutta ei löydy, palautettu merkkijono on muuttumaton. Jos lauseke, kuviot ja korvaava merkkijono ovat NULL, funktio palauttaa NULL-arvon.

REGEXP_REPLACE(), REPLACE(), ja KÄÄNTÄ() toimi sisään MySQL ovat samat, paitsi että TRANSLATE antaa meille mahdollisuuden tehdä useita yhden merkin korvauksia ja REPLACE-funktio korvaa yhden kokonaisen merkkijonon toisella merkkijonolla, kun taas REGEXP_REPLACE etsii merkkijonoa säännöllisen lausekkeen mallia varten.

Syntaksi

Seuraava on perussyntaksi tämän toiminnon käyttämiseksi MySQL:ssä:

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

Parametrin selitys

REGEXP_REPLACE()-funktion parametrien selitys on:

ilmaisu: Se on syötemerkkijono, jolla suoritamme haun säännöllisten lausekkeiden parametrien ja funktioiden kautta.

kuviot: Se edustaa alimerkkijonon säännöllistä lauseketta.

korvaa_merkkijono: Se on alimerkkijono, joka korvataan, jos osuma löytyy.

REGEXP_INSTR()-funktio käyttää useita valinnaisia ​​parametreja, jotka on annettu alla:

pos: Sitä käytetään määrittämään sijainti lausekkeessa merkkijonossa haun aloittamiseksi. Jos emme määritä tätä parametria, se alkaa kohdasta 1.

Linuxin hakemiston uudelleennimeäminen

esiintyminen: Sitä käytetään määrittämään, mitä osuman esiintymää aiomme etsiä. Jos emme määritä tätä parametria, kaikki esiintymät korvataan.

match_type: Se on merkkijono, jonka avulla voimme tarkentaa säännöllistä lauseketta. Se käyttää seuraavia mahdollisia merkkejä vastaavuuden suorittamiseen.

    c:Se edustaa kirjainkoon erottelua.minä:Se edustaa isojen ja pienten kirjainten välistä vastaavuutta.m:Se edustaa monirivistä tilaa, joka sallii rivin päätteet merkkijonon sisällä. Oletusarvon mukaan tämä funktio vastaa rivin päätteitä merkkijonon alussa ja lopussa.n:Sitä käytetään muokkaamaan . (piste) merkki vastaamaan rivin päätteitä.sisään:Se edustaa vain Unix-rivinpäätteitä.

Ymmärtäkäämme se eri esimerkein.

Esimerkki

Seuraava lause selittää perusesimerkin MySQL:n REGEXP_REPLACE-funktiosta.

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

Tässä on tulos:

MySQL REGEXP_REPLACE() -funktio

Oletetaan, että syötemerkkijonomme sisältää useita osumia merkkijonossa , tämä toiminto korvaa ne kaikki. Katso alla olevat lausunnot:

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

Tässä on tulos:

MySQL REGEXP_REPLACE() -funktio

Jos syötemerkkijono ja korvattava merkkijono eivät täsmää, lauseet palauttavat alkuperäisen merkkijonon. Katso alla oleva esimerkki:

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

Tässä on tulos:

MySQL REGEXP_REPLACE() -funktio

Jos haluamme korvata merkkijonon paikan määrittäminen vaihtamisen aloittamiseksi voimme käyttää REGEX_REPLACE-toimintoa seuraavasti:

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

Tässä lausunnossa olemme määrittäneet paikan 2 vaihtamisen aloittamiseksi. Suorittamalla tämän kyselyn saamme alla olevan tulosteen, jossa voimme nähdä, että vaihdettavan merkkijonon ensimmäistä sijaintia ei korvata.

MySQL REGEXP_REPLACE() -funktio

Tiedämme, että kaikki vastaavan merkkijonon esiintymät korvataan oletusarvoisesti. Meillä on kuitenkin myös mahdollisuus määrittää tietty esiintymä vastaavan merkkijonon korvaamiseksi käyttämällä esiintyminen parametri. Katso alla oleva esimerkki:

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

Tässä esimerkissä vaihdettavan merkkijonon aloituspaikka on 2, joka tuli ensimmäisen esiintymän alkamisen jälkeen. Siksi esiintymästä 2 tuli esiintymä 1 ja esiintymästä 3 tuli esiintymä 2. Katso alla oleva tulos:

MySQL REGEXP_REPLACE() -funktio

Voimme tarjota lisäparametrin säännöllisen lausekkeen tarkentamiseksi käyttämällä hakutyyppiargumentteja. Esimerkiksi , voimme käyttää sitä tarkistaaksemme, onko vastaavuudessa kirjainkoolla merkitystä vai onko siinä rivin päätteitä. Katso alla oleva esimerkki, jossa määritämme a kirjainkoolla ja kirjainkoolla ei ole merkitystä:

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

Tässä on tulos:

MySQL REGEXP_REPLACE() -funktio