Funktionen MySQL REGEXP_REPLACE() används för mönstermatchning. Denna funktion söker i en sträng efter ett reguljärt uttrycksmönster och ersätter varje förekomst av mönstret med den angivna strängen som matchar det givna reguljära uttrycksmönstret. Om matchningen hittas returnerar den hela strängen tillsammans med ersättningarna. Om ingen matchning hittas är den returnerade strängen oförändrad. Om uttrycket, mönstren och ersättningssträngen är NULL, returnerar funktionen NULL.
REGEXP_REPLACE(), REPLACE(), och TRANSLATE() fungera i MySQL är fungerar som samma, förutom att TRANSLATE tillåter oss att göra flera enkelteckensersättningar och REPLACE-funktionen ersätter en hel sträng med en annan sträng, medan REGEXP_REPLACE söker efter ett reguljärt uttrycksmönster i en sträng.
Syntax
Följande är en grundläggande syntax för att använda den här funktionen i MySQL:
REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]])
Parameter Förklaring
Förklaringen av funktionsparametrarna REGEXP_REPLACE() är:
uttryck: Det är en inmatningssträng på vilken vi kommer att söka igenom parametrar och funktioner för reguljära uttryck.
avinstallera angular cli
mönster: Det representerar det reguljära uttrycksmönstret för en delsträng.
ersätt_sträng: Det är en delsträng som kommer att ersättas om matchningen hittas.
Funktionen REGEXP_INSTR() använder olika valfria parametrar som anges nedan:
pos: Den används för att ange positionen i uttrycket inom strängen för att starta sökningen. Om vi inte anger denna parameter kommer den att börja på position 1.
förekomst: Den används för att specificera vilken förekomst av en matchning vi ska söka efter. Om vi inte anger denna parameter ersätts alla förekomster.
matchningstyp: Det är en sträng som låter oss förfina det reguljära uttrycket. Den använder följande möjliga tecken för att utföra matchning.
skådespelare ranbir kapoor ålder
Låt oss förstå det med olika exempel.
Exempel
Följande uttalande förklarar det grundläggande exemplet på REGEXP_REPLACE-funktionen i MySQL.
mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String';
Här är utgången:
Anta att vår inmatningssträng innehåller flera matchningar inom strängen , då kommer den här funktionen att ersätta dem alla. Se nedanstående uttalanden:
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String';
Här är utgången:
npm rensa cache
Om indatasträngen och den utbytbara strängen inte matchar, returnerar satserna den ursprungliga strängen. Se exemplet nedan:
mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String';
Här är utgången:
Om vi vill ersätta strängen med ange positionen för att starta ersättningen kan vi använda REGEX_REPLACE-funktionen enligt följande:
java användarinmatning
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String';
I detta uttalande har vi specificerat positionen som 2 för att starta ersättningen. När vi kör den här frågan får vi utdata nedan där vi kan se att den första positionen för den utbytbara strängen inte ersätts.
Vi vet att alla förekomster av den matchande strängen ersätts som standard. Men vi har också ett alternativ att ange den specifika förekomsten för att ersätta den matchande strängen genom att använda förekomst parameter. Se exemplet nedan:
mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String';
I det här exemplet är startpositionen för den utbytbara strängen 2 som kom efter att den första förekomsten hade börjat. Därför blev förekomst 2 förekomst 1 och förekomst 3 blev förekomst 2. Se utdata nedan:
Vi kan tillhandahålla ytterligare en parameter för att förfina det reguljära uttrycket genom att använda matchningstypargumenten. Till exempel , kan vi använda den för att verifiera om matchningen är skiftlägeskänslig eller inkluderar linjeavslutare. Se exemplet nedan där vi specificerar en skiftlägeskänsliga och skiftlägeskänslig matchning:
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';
Här är utgången: