REGEXPINSTRfunzione _ - 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à.

REGEXPINSTRfunzione _

Cerca una stringa per un modello di espressione regolare e restituisce un integer che indica la posizione iniziale o finale della sottostringa corrispondente. Se non viene trovata alcuna corrispondenza, la funzione restituisce 0. REGEXP_ INSTR è simile alla POSITIONfunzione, ma consente di cercare in una stringa un modello di espressione regolare. Per ulteriori informazioni sulle espressioni regolari, vedi POSIXoperatori Espressione regolare in Wikipedia.

Sintassi

REGEXP_INSTR( source_string, pattern [, position [, occurrence] [, option [, parameters ] ] ] ] )

Argomenti

source_string

Un'espressione di stringa, come ad esempio un nome di colonna, da cercare.

pattern

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

posizione

(Facoltativo) Un valore 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 predefinito è 1. Se position è inferiore a 1, la ricerca inizia con il primo carattere di source_string. Se position è maggiore rispetto al numero di caratteri in source_string, il risultato è 0.

occorrenza

(Facoltativo) Un valore INTEGER positivo che indica quale occorrenza del modello utilizzare. REGEXP_ INSTR salta le prime occurrence-1 corrispondenze. Il valore predefinito è 1. Se occurrence è inferiore a 1 oppure maggiore rispetto al numero di caratteri in source_string, la ricerca viene ignorata e il risultato è 0.

option

(Facoltativo) Un valore che indica se restituire la posizione del primo carattere della corrispondenza (0) o la posizione del primo carattere dopo la fine della corrispondenza (1). Un valore diverso da zero equivale a 1. Il valore predefinito è 0.

parameters

(Facoltativo) 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 _ INSTR corrisponde a una sottostringa utilizzando la prima sottoespressione in pattern. REGEXP_ INSTR considera solo la prima sottoespressione; le sottoespressioni aggiuntive vengono ignorate. Se il pattern non ha una sottoespressione, REGEXP _ INSTR 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

Numero intero

Esempi

Gli esempi seguenti utilizzano i dati della USERS tabella nel database di TICKIT esempio. Per ulteriori informazioni, consulta Database di esempio.

Per ricercare il carattere @ che inizia un nome di dominio e restituisce la posizione iniziale della prima corrispondenza, utilizza l'esempio seguente.

SELECT email, REGEXP_INSTR(email, '@[^.]*') FROM users ORDER BY userid LIMIT 4; +-----------------------------------------------+--------------+ | email | regexp_instr | +-----------------------------------------------+--------------+ | Etiam.laoreet.libero@sodalesMaurisblandit.edu | 21 | | Suspendisse.tristique@nonnisiAenean.edu | 22 | | amet.faucibus.ut@condimentumegetvolutpat.ca | 17 | | sed@lacusUtnec.ca | 4 | +-----------------------------------------------+--------------+

Per ricercare le varianti della parola Center e restituire la posizione iniziale della prima corrispondenza, utilizza l'esempio seguente.

SELECT venuename, REGEXP_INSTR(venuename,'[cC]ent(er|re)$') FROM venue WHERE REGEXP_INSTR(venuename,'[cC]ent(er|re)$') > 0 ORDER BY venueid LIMIT 4; +-----------------------+--------------+ | venuename | regexp_instr | +-----------------------+--------------+ | The Home Depot Center | 16 | | Izod Center | 6 | | Wachovia Center | 10 | | Air Canada Centre | 12 | +-----------------------+--------------+

Per trovare la posizione iniziale della prima occorrenza della stringa FOX utilizzando una logica di associazione senza distinzione tra maiuscole e minuscole, utilizza l'esempio seguente.

SELECT REGEXP_INSTR('the fox', 'FOX', 1, 1, 0, 'i'); +--------------+ | regexp_instr | +--------------+ | 5 | +--------------+

Per utilizzare uno schema scritto in PCRE dialetto per individuare parole contenenti almeno un numero e una lettera minuscola, utilizzate l'esempio seguente. Utilizza l'?=operatore, che ha una connotazione specifica in. PCRE In questo esempio viene trovata la posizione iniziale della seconda parola di questo tipo.

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

Per utilizzare uno schema scritto in PCRE dialetto per individuare parole contenenti almeno un numero e una lettera minuscola, utilizzate l'esempio seguente. Utilizza l'?=operatore, che ha una connotazione specifica in. PCRE In questo esempio viene trovata la posizione iniziale della seconda parola, ma differisce dall'esempio precedente in quanto utilizza la corrispondenza senza distinzione tra maiuscole e minuscole.

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