SQL REGEXP_REPLACE

Sql Regexp Replace



Textdata eller strängar, som utvecklarna kallar dem, är en viktig byggsten för alla funktionella program. Detta är inte annorlunda när det gäller att lagra data. Nästan alla databaser innehåller någon form av textinformation som namn, loggar, etc.

Som sådan är strängmanipulation en vanlig uppgift som innebär att manipulera och omvandla strängvärdena till ett specifikt format.

En av de mest kraftfulla funktionerna i SQL som hanterar strängoperationer är funktionen REGEXP_REPLACE(). Denna funktion låter oss utföra den reguljära uttrycksbaserade sökningen och ersättningen. Om du är bekant med reguljära uttryck, vet du hur kraftfull denna funktion kan vara.







I den här handledningen kommer vi att lära oss hur vi kan använda den här funktionen för att söka och ersätta strängarna i SQL-databasen.



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() är en funktion som låter oss utföra den reguljära uttrycksbaserade mönstermatchningen och ersättningen inom en given sträng.



Reguljärt uttryck, eller regex, är ett uppsättningsmönster och platshållare som gör att vi kan matcha och manipulera strängarna eller delsträngarna som följer ett specifikt mönster.





Det är bra att komma ihåg att varje databasmotor kan implementera syntaxen och funktionaliteten för funktionen något.

Men vi kan uttrycka dess syntax enligt följande:



REGEXP_REPLACE(ingångssträng, mönster, ersättning [, flaggor])

Funktionsparametrarna uttrycks i följande:

  1. input_string – Detta anger strängen inom vilken vi vill söka och ersätta.
  2. Mönster – Detta anger det reguljära uttrycksmönster som vi vill matcha inom inmatningssträngen.
  3. Ersättning – Detta anger strängen som ska ersätta de matchade delsträngarna.
  4. Flaggor – Detta är en uppsättning valfria flaggor som kan hjälpa till att modifiera det reguljära uttryckets funktionalitet. Till exempel kan vi aktivera global sökning, skiftlägesokänslig matchning, etc. Denna funktion varierar beroende på databasmotorn.

Exempel:

För att bättre förstå hur den här funktionen fungerar, låt oss titta på några exempel på hur man använder den.

Exempel 1: Grundläggande användning

Anta att vi har en tabell som innehåller personalinformationen som visas i följande exempelutdata:

Tänk på ett fall där vi vill ersätta förekomsten av 'Charlie'-strängen till 'Matthew'. Vi kan använda frågan enligt följande:

VÄLJ

REGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name

FRÅN

anställda;

Det givna exemplet visar en grundläggande sökning och ersätt för att hitta 'Charlie'-strängen från kolumnen 'first_name' och ersätta den med 'Matthew'.

Produktion:

Exempel 2: Skiftlägeskänslig ersättning

I vissa fall kanske du vill göra en skiftlägesokänslig sökning. Detta innebär att funktionen endast kommer att titta på strängens innehåll och inte själva skiftläge för de alfanumeriska bokstäverna.

I ett sådant fall använder vi 'i' som funktionsflagga enligt följande:

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') AS modifierad

FRÅN produkter;

Genom att sätta flaggan på 'i' matchar funktionen alla ord som matchar 'Samsung', oavsett skiftläge.

Slutsats

I det här exemplet undersökte vi hur man använder och arbetar med funktionen REGEXP_REPLACE() för att utföra den reguljära uttrycksmönsterbaserade sökningen och ersättningen.