Oracle/PLSQL: condición REGEXP_LIKE

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: condición REGEXP_LIKE

Este tutorial de Oracle describe cómo usar Oracle condición REGEXP_LIKE (realiza coincidencias de expresiones regulares) con sintaxis y ejemplos.

* No debe confundirse con las condiciones LIKE que realizan coincidencias de patrones simples.

describir

La condición Oracle REGEXP_LIKE le permite realizar coincidencias de expresiones regulares en la cláusula WHERE de una instrucción SELECT, INSERT, UPDATE o DELETE.

sintaxis

La sintaxis de la condición REGEXP_LIKE en Oracle/PLSQL es:

REGEXP_LIKE ( expression, pattern [, match_parameter ] )

parámetro o parámetro

Expresión Una expresión de carácter, como una columna o un campo. Puede ser un tipo de datos VARCHAR2, CHAR, NVARCHAR2, NCHAR, CLOB o NCLOB.patrón

Información de coincidencia de expresiones regulares. Puede ser una combinación de lo siguiente:

valor describir
^ Coincide con el principio de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincide con el comienzo de una línea en cualquier parte de la expresión.
PS Coincide con el final de la cadena. Si se usa con el parámetro de coincidencia de ‘m’, coincidirá con el final de la línea en cualquier parte de la expresión.
* Coincide con cero o más ocurrencias.
+ Coincide con una o más coincidencias.
? Partido cero o una vez.
. Coincide con cualquier carácter excepto NULL.
| Use como “O” para especificar múltiples alternativas.
[ ] Se utiliza para especificar una lista de coincidencias en la que intenta hacer coincidir cualquiera de los caracteres de la lista.
[^ ] Se utiliza para especificar una lista no coincidente en la que está intentando hacer coincidir cualquier carácter excepto los de la lista.
( ) Se utiliza para agrupar expresiones en subexpresiones.
{arroz} Coincidir m veces.
{arroz,} Coincide al menos m veces.
{Minnesota} Coincide al menos m veces, pero no más de n veces.
norte n es un número entre 1 y 9. Coincide con la n-ésima subexpresión encontrada en ( ) antes de que se encuentre n.
[..] Coincide con un elemento de intercalación que puede tener más de un carácter.
[::] Coincide con las clases de personajes.
[==] Igualar clases de equivalencia.
D Coincide con un carácter numérico.
D Coincide con caracteres no numéricos.
w Coincide con un carácter de palabra.
W Coincide con caracteres que no son palabras.
s Coincide con un carácter de espacio en blanco.
S Coincide con caracteres que no son espacios en blanco.
Una Coincide con el principio de la cadena o antes de la nueva línea al final de la cadena coincidente.
Z Coincide con el final de la cadena.
*? Coincide con cero o más ocurrencias del patrón anterior.
+? Coincide con una o más apariciones del patrón anterior.
?? Coincide con cero o una aparición del patrón anterior.
{norte}? Coincide con el patrón anterior n veces.
{norte,}? Coincide con el patrón anterior al menos n veces.
{Nuevo Méjico}? Haga coincidir el patrón anterior al menos n veces, pero no más de m veces.

parámetro de coincidencia

Electivo. Le permite modificar el comportamiento de coincidencia de la condición REGEXP_LIKE. Puede ser una combinación de lo siguiente:

valor describir
‘C’ Realice coincidencias con distinción entre mayúsculas y minúsculas.
‘Una generación’ Realice una coincidencia que no distinga entre mayúsculas y minúsculas.
‘norte’ Permite que el carácter de punto (.) coincida con una nueva línea. De forma predeterminada, los puntos son comodines.
‘I’ Se supone que una expresión tiene varias líneas, donde ^ es el comienzo de una línea y $ es el final de una línea, independientemente de la posición de estos caracteres en la expresión. De forma predeterminada, se supone que las expresiones son de una sola línea.
‘X’ Los caracteres de espacio en blanco se ignoran. De forma predeterminada, los caracteres de espacio en blanco coinciden como cualquier otro carácter.

notas

  • La condición REGEXP_LIKE usa el conjunto de caracteres de entrada para evaluar la cadena.
  • Si especifica valores de parámetros de coincidencia en conflicto, la condición REGEXP_LIKE utilizará el último valor para resolver el conflicto.
  • Si se omite match_parameter, la condición REGEXP_LIKE utilizará la distinción entre mayúsculas y minúsculas determinada por el parámetro NLS_SORT.
  • Consulte también la condición LIKE de Oracle.

Ejemplo: coincidencia de múltiples alternativas

El primer ejemplo de condición Oracle REGEXP_LIKE que veremos implica el uso | patrón.

Expliquemos cómo | El patrón se aplica a la condición Oracle REGEXP_LIKE. Por ejemplo:

SELECT last_name
FROM contacts
WHERE REGEXP_LIKE (last_name, 'Anders(o|e|a)n');

Este ejemplo de REGEXP_LIKE devolverá todos los contactos con un apellido de Anderson, Andersen o Anderson.Esta | El patrón nos dice que busquemos la letra “o”, “e” o “a”.

Ejemplo: coincidencia al principio

A continuación, usemos la condición REGEXP_LIKE para que coincida con el comienzo de la cadena. Por ejemplo:

SELECT last_name
FROM contacts
WHERE REGEXP_LIKE (last_name, '^A(*)');

Este ejemplo de REGEXP_LIKE devolverá todos los contactos cuyo apellido comience con “A”.

Ejemplo: final del partido

A continuación, usemos la condición REGEXP_LIKE para hacer coincidir el final de la cadena. Por ejemplo:

SELECT last_name
FROM contacts
WHERE REGEXP_LIKE (last_name, '(*)n$');

Este ejemplo de REGEXP_LIKE devolverá todos los contactos cuyo apellido termine con “n”.

(Visited 27 times, 1 visits today)