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.
Ļ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:
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:
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:
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.
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:
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: