Fonction regexp_extract_all

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Extrait toutes les chaînes contenues dans str qui correspondent à l’expression regexp et à l’index de groupe regex.

Syntaxe

regexp_extract_all(str, regexp [, idx] )

Arguments

  • str : expression STRING à mettre en correspondance.
  • regexp : une expression STRING avec un modèle correspondant.
  • idx: expression d’un nombre intégral facultatif supérieure ou égale à 0 avec 1 comme valeur par défaut.

Retours

ARRAY<STRING>.

La regexp chaîne doit être une expression régulière. Consultez les expressions régulières pour la syntaxe prise en charge.

Lors de l’utilisation de littéraux, utilisez raw-literal (préfixe r) pour éviter le traitement préalable du caractère d’échappement.

regexp peut contenir plusieurs groupes. idx indique le groupe d’expressions régulières à extraire. Un idx de 0 signifie correspondre à l’expression régulière entière.

Conditions d’erreur courantes

Exemples

Extraire un groupe de capture de chaque correspondance

idx sélectionne le groupe de capture à retourner à partir de chaque correspondance.

> 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]

Extraire chaque nombre d’une chaîne

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

Extraire chaque hashtag

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

Extraire chaque correspondance d’un modèle sans groupe

Lorsque le modèle n’a pas de groupe de capture, utilisez une idx valeur de 0 pour retourner toute la correspondance.

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

Modèle regex non valide

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