SQL REGEXP_REPLACE

Sql Regexp Replace



Tekstdata eller strenger, som utviklerne kaller dem, er en viktig byggestein for ethvert funksjonelt program. Dette er ikke annerledes når det gjelder lagring av data. Nesten alle databaser inneholder en eller annen form for tekstinformasjon som navn, logger osv.

Som sådan er strengmanipulering en vanlig oppgave som innebærer å manipulere og transformere strengverdiene til et spesifikt format.

En av de kraftigste funksjonene i SQL som omhandler strengoperasjoner er REGEXP_REPLACE()-funksjonen. Denne funksjonen lar oss utføre det regulære uttrykksbaserte søk og erstatning. Hvis du er kjent med regulært uttrykk, vet du hvor kraftig denne funksjonen kan være.







I denne opplæringen lærer vi hvordan vi kan bruke denne funksjonen til å søke og erstatte strengene i SQL-databasen.



SQL REGEXP_REPLACE

SQL REGEXP_REPLACE() er en funksjon som lar oss utføre den regulære uttrykksbaserte mønstermatchingen og erstatningen innenfor en gitt streng.



Regulært uttrykk, eller regex, er et sett mønster og plassholdere som lar oss matche og manipulere strengene eller delstrengene som følger et spesifikt mønster.





Det er greit å huske på at hver databasemotor kan implementere syntaksen og funksjonaliteten til funksjonen litt.

Imidlertid kan vi uttrykke syntaksen som følger:



REGEXP_REPLACE(inndatastreng, mønster, erstatning [, flagg])

Funksjonsparametrene er uttrykt i følgende:

  1. input_string – Dette spesifiserer strengen vi ønsker å søke og erstatte innenfor.
  2. Mønster – Dette spesifiserer det regulære uttrykksmønsteret som vi ønsker å matche i inndatastrengen.
  3. Erstatning – Dette spesifiserer strengen som skal erstatte de samsvarende understrengene.
  4. Flagg – Dette er et sett med valgfrie flagg som kan bidra til å endre funksjonaliteten til det regulære uttrykket. For eksempel kan vi aktivere globalt søk, samsvar mellom store og små bokstaver osv. Denne funksjonen varierer avhengig av databasemotoren.

Eksempler:

For bedre å forstå hvordan denne funksjonen fungerer, la oss se på noen eksempler på hvordan du bruker den.

Eksempel 1: Grunnleggende bruk

Anta at vi har en tabell som inneholder ansattinformasjonen som vist i følgende eksempelutdata:

Tenk på et tilfelle der vi ønsker å erstatte forekomsten av 'Charlie'-strengen til 'Matthew'. Vi kan bruke spørringen som følger:

PLUKKE UT

REGEXP_REPLACE(fornavn, 'Charlie', 'Matthew') AS nytt_navn

FRA

ansatte;

Det gitte eksemplet viser et grunnleggende søk og erstatt for å finne 'Charlie'-strengen fra 'first_name'-kolonnen og erstatte den med 'Matthew'.

Produksjon:

Eksempel 2: Erstatning uten store og små bokstaver

I noen tilfeller kan det være lurt å utføre et søk uten store og små bokstaver. Dette betyr at funksjonen kun vil se på strenginnholdet og ikke selve store og små bokstavene til de alfanumeriske bokstavene.

I et slikt tilfelle bruker vi 'i' som funksjonsflagget som følger:

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

FRA produkter;

Ved å sette flagget til «i», samsvarer funksjonen med alle ord som samsvarer med «Samsung», uavhengig av store og små bokstaver.

Konklusjon

I dette eksemplet undersøkte vi hvordan du bruker og arbeider med REGEXP_REPLACE()-funksjonen for å utføre det regulære uttrykksmønsterbaserte søk og erstatning.