Expresiones regulares
TAGS:
Find
Replace
Con la versión 10g Oracle permite utilizar expresiones regulares, dentro de las siguietnes funciones
- REGEXP_INSTR
- REGEXP_REPLACE
- REGEXP_SUBSTR
-REGEXP_LIKE
Antes de comenzar con los diferentes expresiones regulares comentamos los parametros que reciben estas funciones, para asi entender mejor los ejemplos.
REGEXP_SUBSTR
Parametros:
-string: Cadena que vamos a utilizar para buscar un determiando valor.
- patron: Patron de busqueda.,Donde incluiremos las expresiones regulares de esta entrada.
- posicion: Indicamos el caracter dondeOracle debe de empezar a buscar nuestro patron.
- ocurrencia: configuramos que ocurrencia queremos que nos devuelva.
- match parameter: podemos indicar si la busqueda es:
i: case insensitive
c:case sensitive
n: Donde (.) se corresponde con el salto de linea.
m: Indicamos que el string tiene varias lineas.
REGEXP_REPLACE
Parametros:
- string: Cadena que vamos a utilizar como base.
-patron: Patron de busqueda para sustituir.
- replace string: Si el patron de busqueda contiene varias subexpresiones podemos utilizar donde n es un valor entre 0 y 9.
Por ejemplo: Tenemos un formato defecha donde primero estan los meses y luego los dias. Queremos modificarlo para que primero esten los dias y luego los meses.
SQL> SELECTREGEXP_REPLACE('&valor','([[:digit:]]+)/([[:digit:]]+)/','\2/\1/') CAMBIO
from dual;
Enter value for valor: 02/01/2011
CAMBIO------------------------
01/02/2011
Para las expresiones regulares utilizaremos esta query parametrizable:
SELECT REGEXP_SUBSTR('&string','&patron') FROM DUAL;
[^,]+ : Con [^<caracter>] me saca el primer caracter que no coincida con <caracter>, con + hacemos que me saque toda la cadena hasta que encuentre...
Regístrate para leer el documento completo.