La función REGEXP_COUNT en Oracle evalúa la cadena en función del patrón y devuelve el número de veces que se produce un patrón en la cadena. Si la función no encuentra ninguna coincidencia, devuelve 0.
Tabla de Contenidos
ocultar
Sintaxis
Escribe la siguiente sintaxis para utilizarlo:
REGEXP_COUNT( cadena, patron, posicion, parametro_coincidencia )
- REGEXP_COUNT: nombre de la función.
- cadena: es la cadena de entrada para buscar el patrón.
- patrón: es una expresión regular. Puede ser una o la combinación de las siguientes expresiones:
Valor | Descripción |
---|---|
^ | Coincide con el comienzo de una cadena. Si se utiliza con un parámetro de coincidencia de ‘m’, coincide con el inicio de una línea en cualquier lugar dentro de la expresión. |
$ | Coincide con el final de una cuerda. Si se utiliza con un parámetro match_parameter de ‘m’, coincide con el final de una línea en cualquier lugar dentro de la expresión. |
* | Coincide con cero o más ocurrencias. |
+ | Coincide con una o más ocurrencias. |
? | Coincide con cero o una ocurrencia. |
. | Coincide con cualquier carácter excepto NULL. |
| | Se utiliza como un «OR» para especificar más de una alternativa. |
[ ] | Se utiliza para especificar una lista coincidente en la que intentas hacer coincidir cualquiera de los caracteres de la lista. |
[^ ] | Se utiliza para especificar una lista no coincidente en la que intentas coincidir cualquier carácter, excepto los de la lista. |
( ) | Se utiliza para agrupar expresiones como una subexpresión. |
{m} | Coincide con m veces. |
{m,} | Coincide al menos m veces. |
{m,n} | Coincide al menos m veces, pero no más de n veces. |
\n | N es un número entre 1 y 9. Coincide con la enésima subexpresión encontrada dentro de ( ) antes de encontrar \n. |
[..] | Coincide con un elemento de intercalación que puede tener más de un carácter. |
[::] | Partidos de clases de personajes. |
[==] | Clases de equivalencia de partidos. |
\d | Coincide con un carácter de dígito. |
\D | Coincide con un carácter sin dígito. |
\w | Coincide con un carácter de palabra. |
\W | Coincide con un carácter que no sea una palabra. |
\s | Coincide con un carácter de espacio en blanco. |
\S | Coincide con un carácter que no sea espacio en blanco. |
\A | Coincide con el comienzo de una cadena o coincide al final de una cadena antes de un carácter de nueva línea. |
\Z | Coincidencias al final de una cuerda. |
*? | Coincide con el patrón anterior cero o más ocurrencias. |
+? | Coincide con el patrón anterior con una o más ocurrencias. |
?? | Coincide con el patrón anterior cero o una ocurrencia. |
{n}? | Coincide con el patrón anterior n veces. |
{n,}? | Coincide con el patrón anterior al menos n veces. |
{n,m}? | Coincide con el patrón anterior al menos n veces, pero no más de m veces. |
- posicion: es un entero positivo que determina la posición inicial en la cadena en la que la función inicia la búsqueda. El valor predeterminado es 1, lo que significa que la función comienza a buscar al principio de la cadena.
- parametro_coincidencia (opcional): especifique el comportamiento de coincidencia de la función. El parámetro parametro_coincidencia acepta los valores enumerados en la siguiente tabla
Valor | Descripción |
---|---|
‘c’ | Realiza una coincidencia que distingue entre mayúsculas y minúsculas. |
‘i’ | Realiza una coincidencia sin mayúsculas y minúsculas. |
‘n’ | Permite que el punto (.), que es el carácter que coincide con cualquier carácter, coincida con el carácter de nueva línea. Si omite este parámetro, entonces el punto (.) no coincide con el carácter de la nueva línea. |
‘m’ | La función trata la cadena como varias líneas. La función interpreta el signo de dólar (^) y el signo de dólar ($) como el principio y el final, respectivamente, de cualquier línea en cualquier lugar de la cadena, en lugar de solo al principio o al final de toda la cadena. Si omite este parámetro, la función trata la cadena de origen como una sola línea. |
‘x’ | Ignora los caracteres de espacio en blanco. De forma predeterminada, los caracteres de espacio en blanco coinciden entre sí mismos. |
Ejemplo
En el siguiente ejemplo utilizamos la función regex_count para contar el numero de veces que hay escrito un numero en el texto 1 KG de tomates cuesta 4€. La expresión regular \d+ busca dígitos del 0 al 9.
SELECT REGEXP_COUNT('1 KG de tomates cuesta 4€','\d+') RESULTADO FROM dual;