SQL REGEXP_REPLACE

Sql Regexp Replace



Les dades de text o cadenes, com les anomenen els desenvolupadors, són un element bàsic per a qualsevol programa funcional. Això no és diferent quan es tracta d'emmagatzemar les dades. Gairebé totes les bases de dades contenen algun tipus d'informació de text com ara noms, registres, etc.

Com a tal, la manipulació de cadenes és una tasca habitual que implica manipular i transformar els valors de cadenes a un format específic.

Una de les funcions més potents d'SQL que s'ocupa de les operacions de cadena és la funció REGEXP_REPLACE(). Aquesta funció ens permet realitzar la cerca i substitució basada en expressions regulars. Si estàs familiaritzat amb l'expressió regular, saps com de poderosa pot ser aquesta funció.







En aquest tutorial, aprendrem com podem utilitzar aquesta funció per cercar i substituir les cadenes a la base de dades SQL.



SQL REGEXP_REPLACE

L'SQL REGEXP_REPLACE() és una funció que ens permet realitzar la concordança i substitució de patrons basats en expressions regulars dins d'una cadena determinada.



L'expressió regular, o regex, és un patró establert i marcadors de posició que ens permeten coincidir i manipular les cadenes o subcadenes que segueixen un patró específic.





És bo tenir en compte que cada motor de base de dades pot implementar lleugerament la sintaxi i la funcionalitat de la funció.

Tanmateix, podem expressar la seva sintaxi de la següent manera:



REGEXP_REPLACE(cadena_entrada, patró, substitució [, banderes])

Els paràmetres de la funció s'expressen de la següent manera:

  1. cadena_entrada: especifica la cadena dins de la qual volem cercar i substituir.
  2. Patró: especifica el patró d'expressió regular que volem que coincideixi amb la cadena d'entrada.
  3. Substitució: especifica la cadena que substituirà les subcadenes coincidents.
  4. Senyals: aquest és un conjunt de senyaladors opcionals que poden ajudar a modificar la funcionalitat de l'expressió regular. Per exemple, podem habilitar la cerca global, la concordança que no distingeix entre majúscules i minúscules, etc. Aquesta característica varia segons el motor de la base de dades.

Exemples:

Per entendre millor com funciona aquesta funció, mirem alguns exemples sobre com utilitzar-la.

Exemple 1: ús bàsic

Suposem que tenim una taula que conté la informació dels empleats tal com es mostra a la sortida d'exemple següent:

Penseu en un cas en què volem substituir l'ocurrència de la cadena 'Charlie' per 'Matthew'. Podem utilitzar la consulta de la següent manera:

SELECCIONA

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

DE

empleats;

L'exemple donat mostra una cerca bàsica i substitució per trobar la cadena 'Charlie' a la columna 'first_name' i substituir-la per 'Matthew'.

Sortida:

Exemple 2: Substitució que no distingeix entre majúscules i minúscules

En alguns casos, és possible que vulgueu realitzar una cerca que no distingeix entre majúscules i minúscules. Això vol dir que la funció només mirarà el contingut de la cadena i no la minúscula real de les lletres alfanumèriques.

En aquest cas, utilitzem la 'i' com a indicador de funció de la següent manera:

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') COM modificat

DE productes;

En establir la bandera a 'i', la funció coincideix amb totes les paraules que coincideixin amb 'Samsung', independentment de la majúscula.

Conclusió

En aquest exemple, hem explorat com utilitzar i treballar amb la funció REGEXP_REPLACE() per dur a terme la cerca i substitució basada en patrons d'expressions regulars.