Funzione regexp_extract_all

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Estrae tutte le stringhe in str che corrispondono all'espressione regexp e corrispondono all'indice del regex gruppo.

Sintassi

regexp_extract_all(str, regexp [, idx] )

Argomenti

  • str STRING: espressione di cui trovare la corrispondenza.
  • regexp STRING: espressione con un criterio di ricerca corrispondente.
  • idx: espressione numerica integrale facoltativa maggiore o uguale a 0 con il valore predefinito 1.

Valori restituiti

Oggetto ARRAY<STRING>.

La regexp stringa deve essere un'espressione regolare. Per la sintassi supportata, vedere Espressioni regolari .

Quando si usano valori letterali, usare raw-literal (r prefisso) per evitare la pre-elaborazione dei caratteri di escape.

regexp può contenere più gruppi. idx indica il gruppo regex da estrarre. Un idx valore pari a 0 indica che corrisponde all'intera espressione regolare.

Condizioni di errore comuni

Esempi

Estrarre un gruppo di acquisizione da ogni corrispondenza

idx seleziona il gruppo di acquisizione da restituire da ogni corrispondenza.

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 1);
 [100, 300]

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 2);
 [200, 400]

Estrarre ogni numero in una stringa

> SELECT regexp_extract_all('There are 10 cats, 20 dogs, and 30 birds', r'(\d+)', 1);
 [10, 20, 30]

Estrarre ogni hashtag

> SELECT regexp_extract_all('Posts tagged #data #ai #sql', r'#(\w+)', 1);
 [data, ai, sql]

Estrarre ogni corrispondenza di un modello senza gruppo

Quando il criterio non ha un gruppo di acquisizione, usare un valore idx pari a 0 per restituire l'intera corrispondenza.

> SELECT regexp_extract_all('Send to alice@example.com or bob@example.org', r'\w+@\w+\.\w+', 0);
 [alice@example.com, bob@example.org]

Modello regex non valido

> SELECT regexp_extract_all('abc', '[invalid', 0);
  Error: INVALID_PARAMETER_VALUE.PATTERN