Функција МиСКЛ РЕГЕКСП_РЕПЛАЦЕ() се користи за подударање шаблона. Ова функција претражује низ за образац регуларног израза и замењује свако појављивање обрасца са наведеним стрингом који одговара датом шаблону регуларног израза. Ако се пронађе подударање, враћа цео низ заједно са заменама. Ако није пронађено подударање, враћени стринг је непромењен. Ако су израз, обрасци и стринг за замену НУЛЛ, функција ће вратити НУЛЛ.
РЕГЕКСП_РЕПЛАЦЕ(), РЕПЛАЦЕ(), и тхе ТРАНСЛАТЕ() функција у МиСКЛ функционишу исто, осим што нам ТРАНСЛАТЕ омогућава да направимо вишеструке замене једног карактера и функција РЕПЛАЦЕ замењује један цео стринг другим стрингом, док РЕГЕКСП_РЕПЛАЦЕ претражује стринг за образац регуларног израза.
Синтакса
Следеће је основна синтакса за коришћење ове функције у МиСКЛ-у:
REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]])
Објашњење параметара
Објашњење параметара функције РЕГЕКСП_РЕПЛАЦЕ() је:
израз: То је улазни низ на коме ћемо извршити претрагу параметара и функција регуларних израза.
обрасци: Представља образац регуларног израза за подниз.
замени_стринг: То је подниз који ће бити замењен ако се пронађе подударање.
Функција РЕГЕКСП_ИНСТР() користи различите опционе параметре који су дати у наставку:
поз: Користи се за одређивање позиције у изразу унутар стринга за почетак претраге. Ако не наведемо овај параметар, он ће почети на позицији 1.
појава: Користи се да одредимо за које појављивање подударања ћемо тражити. Ако не наведемо овај параметар, сва појављивања се замењују.
матцх_типе: То је стринг који нам омогућава да прецизирамо регуларни израз. Користи следеће могуће знакове да изврши упаривање.
Хајде да то разумемо на разним примерима.
Пример
Следећа изјава објашњава основни пример функције РЕГЕКСП_РЕПЛАЦЕ у МиСКЛ-у.
шта је у питону
mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String';
Ево излаза:
Претпоставимо да наш улазни низ садржи више подударања унутар низа , онда ће ова функција заменити све њих. Погледајте следеће изјаве:
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String';
Ево излаза:
Ако улазни низ и заменљиви стринг немају подударање, искази враћају оригинални стринг. Погледајте пример у наставку:
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String';
Ево излаза:
Ако желимо да заменимо стринг са прецизирајући положај да започнемо замену, можемо користити функцију РЕГЕКС_РЕПЛАЦЕ на следећи начин:
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String';
У овој изјави смо навели позицију као 2 за почетак замене. Извршавајући овај упит, добићемо доњи излаз где можемо видети да прва позиција заменљивог стринга није замењена.
Знамо да су сва појављивања одговарајућег стринга замењена подразумевано. Међутим, такође имамо опцију да наведемо специфичну појаву за замену одговарајућег стринга помоћу појава параметар. Погледајте пример у наставку:
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String';
У овом примеру, почетна позиција заменљивог низа је 2 која је дошла након што је почело прво појављивање. Према томе, појава 2 постала је појава 1, а појава 3 постала је појава 2. Погледајте доњи излаз:
Можемо да обезбедимо додатни параметар за прецизирање регуларног израза коришћењем аргумената типа подударања. На пример , можемо га користити да проверимо да ли је подударање осетљиво на велика и мала слова или укључује терминаторе линија. Погледајте пример у наставку где наводимо а Велика и мала слова и подударање без обзира на велика и мала слова:
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';
Ево излаза: