Passer au contenu principal
Workday User Guide
Dernière mise à jour : 2023-06-23
REGEX

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 type
TEXT
(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 des
TEXT
valeur.

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é au
fournisseur
.
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 :
GET /some_page.html HTTP/1.1
et renvoie uniquement les noms de page HTML demandés :
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)")