REGEXP_ SUBSTR fonction - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

REGEXP_ SUBSTR fonction

Renvoie les caractères d’une chaîne en y recherchant un modèle d’expression régulière. REGEXP_ SUBSTR est similaire à la SUBSTRINGfonction fonction, mais vous permet de rechercher un modèle d'expression régulière dans une chaîne. Si la fonction ne trouve pas correspondance entre l’expression régulière et aucun caractère de la chaîne, elle renvoie une chaîne vide. Pour plus d'informations sur les expressions régulières, voir POSIXopérateurs et Expression régulière dans Wikipedia.

Syntaxe

REGEXP_SUBSTR( source_string, pattern [, position [, occurrence [, parameters ] ] ] )

Arguments

source_string

Expression de chaîne à rechercher.

pattern

Un littéral de chaîne UTF -8 qui représente un modèle d'expression régulière. Pour de plus amples informations, veuillez consulter POSIXopérateurs.

position

Nombre entier positif qui indique à quel endroit de source_string commencer la recherche. La position est basée sur le nombre de caractères, pas d’octets, de sorte que les caractères à plusieurs octets soient comptés comme des caractères seuls. La valeur par défaut est 1. Si position est inférieur à 1, la recherche commence au premier caractère de source_string. Si position est supérieure au nombre de caractères de source_string, le résultat est une chaîne vide ("").

occurrence

Nombre entier positif qui indique quelle occurrence du modèle utiliser. REGEXP_ SUBSTR ignore la première occurrence -1 correspondances. La valeur par défaut est 1. Si l'occurrence est inférieure à 1 ou supérieure au nombre de caractères de source_string, la recherche est ignorée et le résultat l'est. NULL

parameters

Un ou plusieurs littéraux de chaîne qui indiquent comment la fonction correspond au modèle. Les valeurs possibles sont les suivantes :

  • c : réaliser une correspondance avec respect de la casse. Par défaut, la correspondance avec respect de la casse est utilisée.

  • i : réaliser une correspondance avec non-respect de la casse.

  • e : extraire une sous-chaîne à l’aide d’une sous-expression.

    Si le modèle inclut une sous-expression, REGEXP _ SUBSTR correspond à une sous-chaîne utilisant la première sous-expression du modèle. Une sous-expression est une expression dans le modèle qui est mise entre parenthèses. Par exemple, le modèle 'This is a (\\w+)' met en correspondance la première expression avec la chaîne 'This is a ' suivie d’un mot. Au lieu de renvoyer un modèle, REGEXP _ SUBSTR avec le e paramètre renvoie uniquement la chaîne contenue dans la sous-expression.

    REGEXP_ ne SUBSTR prend en compte que la première sous-expression ; les sous-expressions supplémentaires sont ignorées. Si le modèle ne possède pas de sous-expression, REGEXP _ SUBSTR ignore le paramètre « e ».

  • p — Interprétez le modèle avec le dialecte Perl Compatible Regular Expression (PCRE). Pour plus d'informationsPCRE, voir Expressions régulières compatibles avec Perl sur Wikipedia.

Type de retour

VARCHAR

Exemples

L’exemple suivant renvoie la partie d’une adresse e-mail comprise entre le caractère @ et l’extension du domaine. Les données users interrogées proviennent des exemples de données Amazon Redshift. Pour de plus amples informations, veuillez consulter Exemple de base de données.

SELECT email, regexp_substr(email,'@[^.]*') FROM users ORDER BY userid LIMIT 4; email | regexp_substr -----------------------------------------------+-------------------------- Suspendisse.tristique@nonnisiAenean.edu | @nonnisiAenean amet.faucibus.ut@condimentumegetvolutpat.ca | @condimentumegetvolutpat sed@lacusUtnec.ca | @lacusUtnec Cum@accumsan.com | @accumsan

L’exemple suivant renvoie la partie de l’entrée correspondant à la première occurrence de la chaîne FOX à l’aide d’une correspondance ne respectant pas la casse.

SELECT regexp_substr('the fox', 'FOX', 1, 1, 'i'); regexp_substr --------------- fox

L’exemple suivant renvoie la partie de l’entrée correspondant à la deuxième occurrence de la chaîne FOX à l’aide d’une correspondance ne respectant pas la casse. Le résultat est NULL (vide), car il n’existe pas de deuxième occurrence.

SELECT regexp_substr('the fox', 'FOX', 1, 2, 'i'); regexp_substr ---------------

L’exemple suivant renvoie la première partie de l’entrée qui commence par des lettres minuscules. Cela est fonctionnellement identique à la même SELECT instruction sans le c paramètre.

SELECT regexp_substr('THE SECRET CODE IS THE LOWERCASE PART OF 1931abc0EZ.', '[a-z]+', 1, 1, 'c'); regexp_substr --------------- abc

L'exemple suivant utilise un modèle écrit dans le PCRE dialecte pour localiser les mots contenant au moins un chiffre et une lettre minuscule. Il utilise l'?=opérateur, qui a une connotation prospective spécifique dans. PCRE Cet exemple renvoie la partie de l’entrée correspondant au deuxième mot de ce type.

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

L'exemple suivant utilise un modèle écrit dans le PCRE dialecte pour localiser les mots contenant au moins un chiffre et une lettre minuscule. Il utilise l'?=opérateur, qui a une connotation prospective spécifique dans. PCRE Cet exemple renvoie la partie de l’entrée correspondant au deuxième mot de ce type, mais diffère de l’exemple précédent car il utilise une correspondance avec non-respect de la casse.

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

L’exemple suivant utilise une sous-expression pour rechercher la deuxième chaîne correspondant au modèle 'this is a (\\w+)' à l’aide d’une correspondance avec respect de la casse. Il renvoie la sous-expression entre parenthèses.

SELECT regexp_substr( 'This is a cat, this is a dog. This is a mouse.', 'this is a (\\w+)', 1, 2, 'ie'); regexp_substr --------------- dog