REGEX
Description
REGEX
est une fonction de rangée qui effectue une correspondance de chaîne entière avec un TEXT
avec une expression rationnelle et retourne la partie de la chaîne correspondant au premier groupe de saisie de l'expression rationnelle.Syntaxe
REGEX
(string_expression
,"regex_matching_pattern
")Valeur de retour
Renvoie les éléments mis en correspondance
TEXT
valeur du premier groupe de saisie de l'expression rationnelle. S'il n'y a pas de correspondance, retourne NULL
. Paramètres d'entrée
- string_expression
- Est obligatoire. Le nom d'un champ ou d'une expression de typeTEXT(ou une chaîne littérale).
- regex_matching_pattern
- Est obligatoire. Un modèle d’expression rationnelle basé sur la syntaxe de mise en correspondance de modèles d’expression rationnelle du langage de programmation Java. Pour retourner une valeur non NULL, le modèle d'expression rationnelle doit correspondre à l'ensembleTEXTvaleur.
Structures d'expression rationnelle
Voir la référence de l'expression rationnelle pour plus d'informations sur les constructions utilisées pour définir un modèle de correspondance d'expression rationnelle.
Groupes avec saisie et sans saisie
Les groupes sont précisés par une paire de parenthèses autour d’un sous-modèle dans l’expression rationnelle. Un modèle peut avoir plusieurs groupes et les groupes peuvent être imbriqués. Les groupes sont numérotés 1-
n
de gauche à droite, en commençant par la première parenthèse ouvrante. Il existe toujours un groupe 0 implicite qui contient la correspondance complète. Par exemple, le modèle : (a(b*))+(c)
contient trois groupes :
group 1: (a(b*)) group 2: (b*) group 3: (c)
Groupes de saisie
Par défaut, un groupe
saisit
le texte qui génère une correspondance, et seule la correspondance la plus récente est saisie. La REGEX
La fonction renvoie la chaîne qui correspond au premier groupe de saisie dans l'expression rationnelle. Par exemple, si la chaîne d'entrée de l'expression ci-dessus était abc
, l'ensemble REGEX
la fonction correspondrait à abc
, mais ne retourne que le résultat du groupe 1, qui est ab
. Groupes sans saisie
Dans certains cas, vous souhaiterez peut-être utiliser des parenthèses pour regrouper des sous-modèles, mais pas pour saisir du texte. Un groupe non saisissable commence par
(?:
(un point d’interrogation et deux points après la parenthèse ouvrante). Par exemple, h(?:a|i|o)t
correspondances hat
ou hit
ou hot
, mais ne saisit pas les éléments suivants : a
, i
, ou o
à partir de la sous-expression. Exemples
Permet de mettre en correspondance toutes les adresses de courriel possibles avec le modèle
nom d'utilisateur
@fournisseur
.domaine
, mais retourne uniquement la partie du fournisseur
de l'adresse de courriel provenant du champ de courriel
:REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")Correspondre à la ligne de demande d’un journal Web, où la valeur est au format suivant :
et retournent uniquement les noms de pages HTML demandés :GET /some_page.html HTTP/1.1
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")Extrayez la partie (po) d’un
height
champ contenant des valeurs d'exemple 6'2"
, 5'11"
(remarquez la déshérence du guillemet littéral avec un guillemet anglais simple) :REGEX([height], "\d\'(\d)+""")
Extraire l'ensemble du contenu de
device
champ lorsque la valeur est soit iPod
, iPad
, ou iPhone
:REGEX([device], "(iP[ao]d|iPhone)")