REGEX
Description
REGEX
est une fonction de ligne qui effectue une correspondance de chaîne entière par rapport à une TEXT
Valeur avec une expression régulière et renvoie la partie de la chaîne correspondant au premier groupe de capture de l'expression régulière.Syntaxe
REGEX
(string_expression
,"regex_matching_pattern
")Valeur de renvoi
Renvoie la correspondance
TEXT
valeur du premier groupe de capture de l'expression régulière. S'il n'y a pas de correspondance, renvoie NULL
. Paramètres d'entrée
- string_expression
- Est obligatoire. Nom d'un champ ou expression de typeTEXT(ou une chaîne littérale).
- regex_matching_pattern
- Est obligatoire. Un modèle d'expression régulière basé sur la syntaxe de mise en correspondance des modèles d'expression régulière du langage de programmation Java. Pour renvoyer une valeur autre que NULL, le modèle d'expression rationnelle doit correspondre à l'ensemble desTEXTvaleur.
Créations d'expression rationnelle
Pour plus d'informations sur les structures utilisées pour définir un modèle de correspondance d'expression rationnelle, voir Référence : expressions rationnelles.
Groupes d'acquisition et de non-immobilisation
Les groupes sont indiqués par une paire de parenthèses autour d'un sous-modèle dans l'expression rationnelle. Un modèle peut avoir plus d'un groupe et les groupes peuvent être imbriqués. Les groupes sont numérotés de 1
à 1
de gauche à droite, en commençant par la première parenthèse ouvrante. Il existe toujours un groupe implicite 0, qui contient l'intégralité de la correspondance. Par exemple, le modèle : (a(b*))+(c)
contient trois groupes :
group 1: (a(b*)) group 2: (b*) group 3: (c)
Groupes de capture
Par défaut, un groupe
capture
le texte qui génère une correspondance, et seule la correspondance la plus récente est capturée. Le REGEX
La fonction renvoie la chaîne qui correspond au premier groupe de capture dans l'expression régulière. Par exemple, si la chaîne d'entrée de l'expression ci-dessus était abc
, l'intégralité REGEX
fonction correspond à abc
, mais ne renvoie que le résultat du groupe 1, ab
. Groupes non inclus
Dans certains cas, vous pouvez utiliser les parenthèses pour regrouper des sous-modèles, mais pas capturer du texte. Un groupe non captureur commence par
(?:
(un point d'interrogation et deux-points après la parenthèse ouvrante). Par exemple, h(?:a|i|o)t
correspondance(s) hat
ou hit
ou hot
, mais ne capture pas les a
, i
, ou o
à partir de la sous-expression. Exemples
Mettez en correspondance toutes les adresses e-mail possibles avec un modèle de
nom d'utilisateur
associé aufournisseur
.de domaine
, mais ne renvoie que la partie du fournisseur
de l'adresse e-mail du champ d'e-mail
:REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")Faites correspondre la ligne de demande d'un journal web, où la valeur est au format suivant :
et renvoie uniquement les noms de page HTML demandés :GET /some_page.html HTTP/1.1
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")Extraire la partie décimales d'une
height
champ où les exemples de valeurs sont 6'2"
, 5'11"
(remarquez l'échappement de la apostrophe littérale à la suite d'un guillemet double) :REGEX([height], "\d\'(\d)+""")
Extraire tout le contenu de
device
champ lorsque la valeur est soit iPod
, iPad
, ou iPhone
:REGEX([device], "(iP[ao]d|iPhone)")