Fonction regexp_substr

S’applique à :coche marquée oui Databricks SQL oui coché Databricks Runtime 11.3 LTS et versions ultérieures

Retourne la première sous-chaîne de str qui correspond à regexp.

Syntaxe

regexp_substr( str, regexp )

Arguments

  • str : expression STRING à mettre en correspondance.
  • regexp : une expression STRING avec un modèle correspondant.

Retours

STRING.

regexp_substr retourne la sous-chaîne entière qui regexp correspond, et non un groupe de capture individuel. Pour retourner un groupe de capture spécifique, utilisez regexp_extract. Seule la première correspondance est considérée. Pour retourner chaque correspondance, utilisez regexp_extract_all.

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.

Si str ou regexp est NULL, ou si le modèle est introuvable, le résultat est NULL.

Conditions d’erreur courantes

Exemples

Faire correspondre l’une des différentes alternatives

Le modèle Ste(v\|ph)en correspond à l’une ou l’autre Steven des Stephencorrespondances . La fonction retourne la première correspondance.

> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
 Steven

Extraire le premier nombre d’une chaîne

Utilisez un littéral brut pour qu’il \d soit passé au moteur regex sans doubler la barre oblique inverse.

> SELECT regexp_substr('item 42 costs $19', r'\d+');
 42

Mettre en correspondance la casse sans respect de la casse

Utilisez l’indicateur inline pour ignorer la (?i) casse.

> SELECT regexp_substr('Error: disk full', r'(?i)error');
 Error

Extraire une adresse e-mail

> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
 alice@example.com

Extraire le premier hashtag

regexp_substr retourne uniquement la première correspondance. Pour retourner chaque correspondance, utilisez regexp_extract_all.

> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
 #data

Aucune correspondance n’est retournée NULL

Contrairement à regexp_extract, qui retourne une chaîne vide, regexp_substr retourne NULL lorsque le modèle est introuvable.

> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
 NULL

NULL retours d’entrée NULL

> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
 NULL

> SELECT regexp_substr('Mary had a little lamb', NULL);
 NULL

Modèle regex non valide

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