Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
REGEXP_ función SUBSTR
Devuelve los caracteres de una cadena buscando en ella un patrón de expresión regular. REGEXP_ SUBSTR es similar a la Función de SUBSTRING función, pero permite buscar un patrón de expresión regular en una cadena. Si la función no puede hacer coincidir la expresión regular con ningún carácter de la cadena, devuelve una cadena vacía.
Sintaxis
REGEXP_SUBSTR ( source_string, pattern [, position [, occurrence [, parameters ] ] ] )
Argumentos
- source_string
-
Una expresión de cadena que se va a buscar.
- pattern
-
Un literal de cadena que representa un patrón de expresión regular.
- position
-
Valor entero positivo que indica la posición dentro de source_string (cadena_de_origen) para comenzar la búsqueda. La posición se basa en la cantidad de caracteres, no bytes, por lo que los caracteres multibyte se cuentan como caracteres simples. El valor predeterminado de es 1. Si el valor de position (posición) es menor que 1, la búsqueda comienza en el primer carácter de source-string (cadena_de_origen). Si el valor de position (posición) es mayor que el número de caracteres de source-string (cadena_de_origen), el resultado es una cadena vacía ("").
- occurrence
-
Un entero positivo que indica qué aparición del patrón se debe utilizar. REGEXP_ SUBSTR omite la primera vez que se produzca una coincidencia con -1. El valor predeterminado de es 1. Si la aparición es menor que 1 o mayor que el número de caracteres de source_string, se ignora la búsqueda y se obtiene el resultado. NULL
- parameters
-
Uno o varios literales de cadena que indican el grado de coincidencia de la función con el patrón. Los valores posibles son los siguientes:
-
c: aplica la coincidencia que distingue entre mayúsculas y minúsculas. El comportamiento predeterminado es utilizar la coincidencia que distingue entre mayúsculas y minúsculas.
-
i: aplica la coincidencia que no distingue entre mayúsculas y minúsculas.
-
e: extrae una subcadena mediante una subexpresión.
Si el patrón incluye una subexpresión, REGEXP _ SUBSTR coincide con una subcadena que utilice la primera subexpresión del patrón. Una subexpresión es una expresión dentro del patrón que está entre paréntesis. Por ejemplo, para que el patrón
'This is a (\\w+)'
coincida con la primera expresión con la cadena'This is a '
seguida de una palabra. En lugar de devolver un patrón, REGEXP _ SUBSTR con ele
parámetro devuelve solo la cadena dentro de la subexpresión.REGEXP_ SUBSTR considera solo la primera subexpresión; se ignoran las subexpresiones adicionales. Si el patrón no tiene una subexpresión, REGEXP _ SUBSTR ignora el parámetro «e».
-
p — Interpreta el patrón con el dialecto de expresión regular () PCRE compatible con Perl.
-
Tipo de retorno
VARCHAR
Ejemplo
El siguiente ejemplo devuelve la parte de una dirección de correo electrónico entre el carácter @ y la extensión de dominio.
SELECT email, regexp_substr(email,'@[^.]*') FROM users ORDER BY userid LIMIT 4; email | regexp_substr -----------------------------------------------+-------------------------- Etiam.laoreet.libero@sodalesMaurisblandit.edu | @sodalesMaurisblandit Suspendisse.tristique@nonnisiAenean.edu | @nonnisiAenean amet.faucibus.ut@condimentumegetvolutpat.ca | @condimentumegetvolutpat sed@lacusUtnec.ca | @lacusUtnec
El siguiente ejemplo devuelve la parte de la entrada que corresponde a la primera vez que aparece la cadena FOX
, con una coincidencia que no distingue entre mayúsculas y minúsculas.
SELECT regexp_substr('the fox', 'FOX', 1, 1, 'i'); regexp_substr --------------- fox
El ejemplo siguiente devuelve la primera parte de la entrada que comienza en minúscula. Esto es funcionalmente idéntico a la misma SELECT sentencia sin el parámetro. c
SELECT regexp_substr('THE SECRET CODE IS THE LOWERCASE PART OF 1931abc0EZ.', '[a-z]+', 1, 1, 'c'); regexp_substr --------------- abc
En el siguiente ejemplo, se utiliza un patrón escrito en el PCRE dialecto para localizar las palabras que contienen al menos un número y una letra minúscula. Utiliza el ?=
operador, que tiene una connotación específica de prospectiva. PCRE En este ejemplo, se devuelve la parte de la entrada que corresponde a la segunda palabra que reúne esas características.
SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'p'); regexp_substr --------------- a1234
En el siguiente ejemplo, se utiliza un patrón escrito en el PCRE dialecto para localizar las palabras que contienen al menos un número y una letra minúscula. Utiliza el ?=
operador, que tiene una connotación específica de prospectiva. PCRE En este ejemplo, se devuelve la parte de la entrada que corresponde a la segunda palabra que reúne esas características, pero difiere del ejemplo anterior, ya que se utiliza una coincidencia sin distinción entre mayúsculas y minúsculas.
SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'ip'); regexp_substr --------------- A1234
En el ejemplo siguiente se utiliza una subexpresión para buscar la segunda cadena que coincida con el patrón 'this is a (\\w+)'
con una coincidencia que no distingue entre mayúsculas y minúsculas. Devuelve la subexpresión entre paréntesis.
select regexp_substr( 'This is a cat, this is a dog. This is a mouse.', 'this is a (\\w+)', 1, 2, 'ie'); regexp_substr --------------- dog