REGEXPSUBSTRfunzione _ - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

REGEXPSUBSTRfunzione _

Restituisce i caratteri da una stringa cercando un modello di espressione regolare. REGEXP_ SUBSTR è simile alla SUBSTRINGfunzione funzione, ma consente di cercare in una stringa un modello di espressione regolare. Se la funzione non riesce a far corrispondere l'espressione regolare ad alcun carattere della stringa, restituisce una stringa vuota. Per ulteriori informazioni sulle espressioni regolari, vedi POSIXoperatori Espressione regolare in Wikipedia.

Sintassi

REGEXP_SUBSTR( source_string, pattern [, position [, occurrence [, parameters ] ] ] )

Argomenti

source_string

Un'espressione della stringa da ricercare.

pattern

Un valore letterale a UTF -8 stringhe che rappresenta un modello di espressione regolare. Per ulteriori informazioni, consulta POSIXoperatori.

posizione

Un integer positivo che indica la posizione all'interno di source_string per iniziare la ricerca. La posizione si basa sul numero di caratteri, non di byte, pertanto i caratteri multibyte vengono contati come caratteri singoli. Il valore di default è 1. Se posizione è inferiore a 1, la ricerca inizia con il primo carattere di source_string. Se posizione è maggiore rispetto al numero di caratteri in source_string, il risultato è una stringa vuota ("").

occorrenza

Un integer positivo che indica quale occorrenza del modello utilizzare. REGEXP_ SUBSTR salta la prima occorrenza -1 corrispondenze. Il valore di default è 1. Se l'occorrenza è minore di 1 o maggiore del numero di caratteri in source_string, la ricerca viene ignorata e il risultato è. NULL

parameters

Uno o più letterali di stringa che indicano come la funzione corrisponde al modello. Di seguito sono riportati i valori possibili:

  • c: eseguire una corrispondenza in base a maiuscole e minuscole. L'impostazione predefinita è utilizzare la corrispondenza con distinzione tra maiuscole e minuscole.

  • i: eseguire una corrispondenza senza distinzione tra maiuscole e minuscole.

  • e: estrarre una sottostringa usando una sottoespressione.

    Se pattern include una sottoespressione, REGEXP _ SUBSTR corrisponde a una sottostringa utilizzando la prima sottoespressione in pattern. Un'espressione secondaria è un'espressione all'interno del modello racchiusa tra parentesi. Ad esempio, per il modello 'This is a (\\w+)' corrisponde alla prima espressione con la stringa 'This is a ' seguita da una parola. Invece di restituire pattern, REGEXP _ SUBSTR con il e parametro restituisce solo la stringa all'interno della sottoespressione.

    REGEXP_ SUBSTR considera solo la prima sottoespressione; le sottoespressioni aggiuntive vengono ignorate. Se il pattern non ha una sottoespressione, REGEXP _ SUBSTR ignora il parametro 'e'.

  • p — Interpreta il pattern con il dialetto Perl Compatible Regular Expression ()PCRE. Per ulteriori informazioni suPCRE, vedete Perl Compatible Regular Expressions in Wikipedia.

Tipo restituito

VARCHAR

Esempi

L'esempio seguente restituisce la porzione di un indirizzo email tra il carattere @ e l'estensione del dominio. I dati users richiesti provengono dai dati di esempio di Amazon Redshift. Per ulteriori informazioni, consulta Database di esempio.

SELECT email, regexp_substr(email,'@[^.]*') FROM users ORDER BY userid LIMIT 4; email | regexp_substr -----------------------------------------------+-------------------------- Suspendisse.tristique@nonnisiAenean.edu | @nonnisiAenean amet.faucibus.ut@condimentumegetvolutpat.ca | @condimentumegetvolutpat sed@lacusUtnec.ca | @lacusUtnec Cum@accumsan.com | @accumsan

Nell'esempio seguente viene restituita la porzione dell'input corrispondente alla prima ricorrenza della stringa FOX utilizzando una corrispondenza senza distinzione tra maiuscole e minuscole.

SELECT regexp_substr('the fox', 'FOX', 1, 1, 'i'); regexp_substr --------------- fox

Nell'esempio seguente viene restituita la porzione dell'input corrispondente alla seconda occorrenza della stringa FOX utilizzando una corrispondenza senza distinzione tra maiuscole e minuscole. Il risultato è NULL (vuoto) perché non esiste una seconda occorrenza.

SELECT regexp_substr('the fox', 'FOX', 1, 2, 'i'); regexp_substr ---------------

L'istruzione di esempio seguente restituisce la prima parte dell'input che inizia con lettere minuscole. Dal punto di vista funzionale è identica alla stessa SELECT istruzione senza il c parametro.

SELECT regexp_substr('THE SECRET CODE IS THE LOWERCASE PART OF 1931abc0EZ.', '[a-z]+', 1, 1, 'c'); regexp_substr --------------- abc

L'esempio seguente utilizza uno schema scritto in PCRE dialetto per individuare le parole contenenti almeno un numero e una lettera minuscola. Utilizza l'?=operatore, che ha una connotazione specifica di look-ahead in. PCRE In questo esempio viene restituita la parte dell'input corrispondente alla seconda parola di questo tipo.

SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'p'); regexp_substr --------------- a1234

L'esempio seguente utilizza uno schema scritto in PCRE dialetto per individuare le parole contenenti almeno un numero e una lettera minuscola. Utilizza l'?=operatore, che ha una connotazione specifica di look-ahead in. PCRE In questo esempio viene restituita la parte di input corrispondente alla seconda parola, ma differisce dall'esempio precedente in quanto si utilizza la corrispondenza senza distinzione tra maiuscole e minuscole.

SELECT regexp_substr('passwd7 plain A1234 a1234', '(?=[^ ]*[a-z])(?=[^ ]*[0-9])[^ ]+', 1, 2, 'ip'); regexp_substr --------------- A1234

L'esempio seguente utilizza un'espressione secondaria per trovare la seconda stringa che corrisponde al modello 'this is a (\\w+)' utilizzando la corrispondenza senza distinzione tra maiuscole e minuscole. Restituisce l'espressione secondaria tra parentesi.

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