logo

Funkcia MySQL REGEXP_REPLACE().

Funkcia MySQL REGEXP_REPLACE() sa používa na porovnávanie vzorov. Táto funkcia vyhľadá v reťazci vzor regulárneho výrazu a nahradí každý výskyt vzoru so zadaným reťazcom, ktorý zodpovedá danému vzoru regulárneho výrazu. Ak sa nájde zhoda, vráti celý reťazec spolu s náhradami. Ak sa nenájde žiadna zhoda, vrátený reťazec sa nezmení. Ak sú výraz, vzory a náhradný reťazec NULL, funkcia vráti hodnotu NULL.

REGEXP_REPLACE(), REPLACE(), a the TRANSLATE() funkcia v MySQL fungujú rovnako, až na to, že TRANSLATE nám umožňuje vykonávať viaceré jednoznakové substitúcie a funkcia REPLACE nahrádza jeden celý reťazec iným reťazcom, zatiaľ čo REGEXP_REPLACE hľadá v reťazci vzor regulárneho výrazu.

Syntax

Nasleduje základná syntax na použitie tejto funkcie v MySQL:

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

Vysvetlenie parametra

Vysvetlenie parametrov funkcie REGEXP_REPLACE() je:

výraz: Je to vstupný reťazec, na ktorom vykonáme vyhľadávanie cez parametre a funkcie regulárnych výrazov.

rozloženie mriežky

vzory: Predstavuje vzor regulárneho výrazu pre podreťazec.

nahradiť_reťazec: Je to podreťazec, ktorý bude nahradený, ak sa nájde zhoda.

Funkcia REGEXP_INSTR() používa rôzne voliteľné parametre, ktoré sú uvedené nižšie:

poz.: Používa sa na určenie pozície vo výraze v reťazci na spustenie vyhľadávania. Ak tento parameter nešpecifikujeme, začne na pozícii 1.

výskyt: Používa sa na zadanie, ktorý výskyt zhody ideme hľadať. Ak tento parameter neuvedieme, všetky výskyty sa nahradia.

typ_zhody: Je to reťazec, ktorý nám umožňuje spresniť regulárny výraz. Na vykonanie párovania používa nasledujúce možné znaky.

np.argmax
    c:Predstavuje zhodu s veľkosťou písmen.ja:Predstavuje párovanie bez ohľadu na veľkosť písmen.m:Predstavuje viacriadkový režim, ktorý umožňuje ukončenie riadkov v rámci reťazca. V predvolenom nastavení sa táto funkcia zhoduje so zakončeniami riadkov na začiatku a na konci reťazca.n:Používa sa na úpravu . (bodka) na zhodu so zakončeniami riadkov.v:Predstavuje len koncovky riadkov pre Unix.

Poďme to pochopiť na rôznych príkladoch.

Príklad

Nasledujúce vyhlásenie vysvetľuje základný príklad funkcie REGEXP_REPLACE v MySQL.

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

Tu je výstup:

Funkcia MySQL REGEXP_REPLACE().

Predpokladajme, že náš vstupný reťazec obsahuje viaceré zhody v reťazci , potom táto funkcia nahradí všetky. Pozrite si nasledujúce vyhlásenia:

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

Tu je výstup:

Funkcia MySQL REGEXP_REPLACE().

Ak sa vstupný reťazec a vymeniteľný reťazec nezhodujú, príkazy vrátia pôvodný reťazec. Pozrite si nasledujúci príklad:

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

Tu je výstup:

reťazec na char
Funkcia MySQL REGEXP_REPLACE().

Ak chceme reťazec nahradiť o upresnenie polohy na spustenie výmeny môžeme použiť funkciu REGEX_REPLACE takto:

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

V tomto vyhlásení sme zadali pozíciu ako 2 na spustenie výmeny. Po vykonaní tohto dotazu dostaneme výstup uvedený nižšie, kde vidíme, že prvá pozícia vymeniteľného reťazca nie je nahradená.

Funkcia MySQL REGEXP_REPLACE().

Vieme, že všetky výskyty zodpovedajúceho reťazca sú štandardne nahradené. Máme však tiež možnosť určiť konkrétny výskyt na nahradenie zhodného reťazca pomocou výskyt parameter. Pozrite si nasledujúci príklad:

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

V tomto príklade je počiatočná pozícia vymeniteľného reťazca 2, ktorá nastala po spustení prvého výskytu. Preto sa výskyt 2 stal výskytom 1 a výskyt 3 sa stal výskytom 2. Pozrite si výstup nižšie:

Funkcia MySQL REGEXP_REPLACE().

Môžeme poskytnúť ďalší parameter na spresnenie regulárneho výrazu pomocou argumentov typu zhody. Napríklad , môžeme ho použiť na overenie, či sa v zhode rozlišujú malé a veľké písmená alebo či obsahuje zakončovacie znaky riadku. Pozrite si príklad nižšie, kde špecifikujeme a rozlišovať malé a veľké písmená a zhoda bez rozlišovania malých a veľkých písmen:

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

Tu je výstup:

Funkcia MySQL REGEXP_REPLACE().