Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fonction
S’applique à :
Databricks SQL
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: expressionSTRINGà mettre en correspondance. -
regexp: une expressionSTRINGavec 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