logo

MySQL REGEXP_REPLACE() funkcija

Funkcija MySQL REGEXP_REPLACE() tiek izmantota raksta saskaņošanai. Šī funkcija meklē virknē regulāras izteiksmes modeli un aizstāj katru modeļa gadījumu ar norādīto virkni, kas atbilst dotajam regulārās izteiksmes modelim. Ja atbilstība tiek atrasta, tā atgriež visu virkni kopā ar aizstājējiem. Ja atbilstība netiek atrasta, atgrieztā virkne netiek mainīta. Ja izteiksme, modeļi un aizstāšanas virkne ir NULL, funkcija atgriezīs NULL.

REGEXP_REPLACE(), REPLACE(), un TRANSLATE() funkcija iekšā MySQL ir darbojas tāpat, izņemot to, ka TRANSLATE ļauj mums veikt vairākas vienas rakstzīmes aizstāšanas un funkcija REPLACE aizstāj vienu veselu virkni ar citu virkni, savukārt REGEXP_REPLACE meklē virkni regulāras izteiksmes modelim.

Sintakse

Tālāk ir sniegta pamata sintakse šīs funkcijas izmantošanai MySQL:

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

Parametra skaidrojums

Funkcijas REGEXP_REPLACE() parametru skaidrojums ir šāds:

izteiksme: Tā ir ievades virkne, kurā mēs veiksim meklēšanu, izmantojot regulāro izteiksmju parametrus un funkcijas.

modeļi: Tas attēlo apakšvirknes regulārās izteiksmes modeli.

aizstāt_string: Tā ir apakšvirkne, kas tiks aizstāta, ja tiks atrasta atbilstība.

noķer un izmēģini javu

Funkcija REGEXP_INSTR() izmanto dažādus izvēles parametrus, kas norādīti tālāk:

pozīcija: To izmanto, lai norādītu pozīciju izteiksmē virknē, lai sāktu meklēšanu. Ja mēs nenorādīsim šo parametru, tas sāksies 1. pozīcijā.

notikums: To izmanto, lai norādītu, kuru atbilstības gadījumu mēs meklēsim. Ja mēs nenorādīsim šo parametru, visi gadījumi tiek aizstāti.

match_type: Tā ir virkne, kas ļauj precizēt regulāro izteiksmi. Tas izmanto šādas iespējamās rakstzīmes, lai veiktu saskaņošanu.

    c:Tas apzīmē reģistrjutīgu atbilstību.es:Tas atspoguļo reģistrjutīgu atbilstību.m:Tas apzīmē vairāku rindu režīmu, kas ļauj virknē rindiņas izbeigt. Pēc noklusējuma šī funkcija saskaņo rindas beigu punktus virknes sākumā un beigās.n:To izmanto, lai modificētu . (punkts) rakstzīme, lai atbilstu rindiņas terminatoriem.in:Tas apzīmē tikai Unix rindu galotnes.

Ļaujiet mums to saprast ar dažādiem piemēriem.

Piemērs

Šis paziņojums izskaidro MySQL funkcijas REGEXP_REPLACE pamata piemēru.

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

Šeit ir izvade:

MySQL REGEXP_REPLACE() funkcija

Pieņemsim, ka mūsu ievades virkne satur vairākas atbilstības virknē , tad šī funkcija aizstās tos visus. Skatiet tālāk sniegtos paziņojumus:

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

Šeit ir izvade:

MySQL REGEXP_REPLACE() funkcija

Ja ievades virknei un nomaināmajai virknei nav atbilstības, priekšraksti atgriež sākotnējo virkni. Skatiet tālāk redzamo piemēru:

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

Šeit ir izvade:

MySQL REGEXP_REPLACE() funkcija

Ja mēs vēlamies aizstāt virkni ar norādot pozīciju lai sāktu nomaiņu, mēs varam izmantot funkciju REGEX_REPLACE šādi:

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

Šajā paziņojumā mēs esam norādījuši pozīciju 2, lai sāktu nomaiņu. Izpildot šo vaicājumu, mēs iegūsim zemāk redzamo izvadi, kurā redzēsim, ka nomaināmās virknes pirmā pozīcija nav aizstāta.

MySQL REGEXP_REPLACE() funkcija

Mēs zinām, ka visi atbilstošās virknes gadījumi tiek aizstāti pēc noklusējuma. Tomēr mums ir arī iespēja norādīt konkrēto gadījumu, kad tiek aizstāta atbilstošā virkne, izmantojot notikums parametrs. Skatiet tālāk redzamo piemēru:

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

Šajā piemērā nomaināmās virknes sākuma pozīcija ir 2, kas radās pēc tam, kad bija sācies pirmais gadījums. Tāpēc 2. gadījums kļuva par 1. gadījumu, bet 3. gadījums kļuva par 2. gadījumu. Skatiet tālāk redzamo izvadi:

MySQL REGEXP_REPLACE() funkcija

Mēs varam nodrošināt papildu parametru, lai precizētu regulāro izteiksmi, izmantojot atbilstības veida argumentus. Piemēram , mēs varam to izmantot, lai pārbaudītu, vai atbilstība ir reģistrjutīga, vai ietver rindas beigu punktus. Skatiet tālāk redzamo piemēru, kur mēs norādām a reģistrjutīgs un reģistrjutīga atbilstība:

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

Šeit ir izvade:

MySQL REGEXP_REPLACE() funkcija