Expressions régulières

Les expressions régulières sont utilisées dans tous les champs de recherche des outils de données, y compris les panneaux d’entité de requête.

A propos des Expressions régulières

Une expression régulière est un modèle de texte, composé d’une combinaison de caractères alphanumériques et de caractères spéciaux, appelés métacaractères, qui localise les modèles et extrait les sous-chaînes du texte. Les expressions régulières sont largement utilisées dans la programmation informatique et font partie intégrante de langues telles que le Perl.

Pour identifier et extraire des modèles de chaînes complexes, le serveur de l’outil de données utilise des expressions régulières dans certaines des transformations et conditions. Ce qui suit est un bref guide des expressions régulières.

Cette annexe n'est pas une introduction complète aux expressions régulières. La publication O'Reilly Maîtriser les Expressions régulières, 2e édition de Jeffrey E. F. Friedl est une référence particulièrement intéressante.

Terminologie des Expressions ordinaires

Terme Définition
Littéral Un littéral est un caractère que nous utilisons dans une expression régulière pour localiser une séquence de caractères spécifique. Par exemple, pour rechercher un produit dans shop/products.html, le produit de la chaîne est un littéral ou ce que nous recherchons littéralement dans la chaîne.
Métacharactère Un métacaractère est un caractère spécial qui a une interprétation unique dans le contexte des expressions régulières. Par exemple, le point (.) est un caractère de métacaractère utilisé pour faire correspondre n’importe quel caractère.
Séquence d’échappement Une séquence d'échappement est simplement un moyen de dire au moteur d'expression normal que nous aimerions utiliser l'un des métacaractères comme littéral. Les séquences d’échappement sont toujours débuts avec la barre oblique inverse (\). En plaçant la barre oblique inverse (qui est également un caractère de métacaractère) devant un caractère de métacaractère, le moteur d'expression classique interprète le caractère de métacaractère échappé comme un littéral. Par exemple, si vous souhaitez faire correspondre la période de métacaractère (.), vous devez utiliser une séquence d’échappement. Cependant, pour correspondre à l’un des points de la chaîne 168.196.0.11, vous pouvez utiliser l’expression régulière composée d’une barre oblique inverse et d’un point (\.).
Modèle C'est la terminologie abrégée de l'expression ordinaire. Essentiellement, une expression régulière est un modèle que vous essayez de faire correspondre à la chaîne de cible.
Chaîne de cible Ce terme fait référence à la chaîne dans laquelle nous recherchons le modèle souhaité.

À propos de la correspondance littérale

La correspondance littérale prend une chaîne littérale sans caractère d’échappement et recherche dans la chaîne de cible s’il s’agit d’une sous-chaîne de la chaîne de cible.

Dans cet exemple, vous voyez comment fonctionne la correspondance littérale. Supposons que des données soient collectées à partir du trafic du site Web et que le champ cs(parrain) contienne la valeur suivante :

http://www.abc.com/adventurenews/today.html?ad=123AZ45

Pour déterminer si le parrain représente une personne ayant cliqué sur l’une des publicités, vous devez vérifier si le parrain contient la publicité à chaînes. Vous pouvez simplement utiliser la chaîne littérale de la publicité pour rechercher la chaîne de cible et déterminer si une publicité a été utilisée pour acheminer le trafic vers le site. Bien que cette chaîne corresponde à la chaîne de cible, elle correspond à deux emplacements et est donc ambiguë et peut conduire à des faux positifs.

L’URL suivante contient la chaîne publicitaire à deux emplacements différents :

http://www.abc.com/ad vertnews/today.html?ad =123AZ45

Par conséquent, si vous essayez de déterminer quelles sessions ont commencé à la suite d’une campagne publicitaire particulière, il est évident que l’utilisation de la publicité littérale comme expression régulière n’est pas suffisante. Le fait de remplacer le littéral par "ad=" éliminerait cette ambiguïté et ne ferait qu’une seule correspondance avec l’expression. Cependant, même cela peut ne pas suffire pour s'assurer que le parrain faisait partie de la campagne publicitaire. Examinez le parrain suivant :

http://www.xyz.com/hello.html?pad=something

Vous n’avez aucun contrôle sur les URL que d’autres utilisateurs peuvent utiliser pour créer des liens vers le site. La correspondance littérale est un mécanisme trop simple pour localiser les sessions qui ont commencé à la suite de la campagne publicitaire. La section suivante explique comment utiliser les caractères de remplacement pour une correspondance plus souple et plus puissante.

Utilisation de métacaractères

Un métacaractère est un caractère spécial dans un programme ou un champ de données qui fournit des informations sur d'autres caractères.

métacharactère description
. (point) Correspond à un caractère unique, par exemple : re:x.z correspond à "xyz" ou "xxz".
* (étoile) Correspond à un ou plusieurs caractères, par exemple : re:Z* correspond à "ZZZ".
? (caractère générique) Correspond à 0 ou 1 de l’expression précédente pour forcer une correspondance minimale, par exemple : xy?z correspond à "xy" et "xyz".

D’autres expressions courantes peuvent également être utilisées pour créer des chaînes de recherche plus complexes.

Listes, plages et OU

La correspondance littérale vous permet de rechercher une chaîne unique, mais les crochets, les tirets et les barres verticales vous permettent de définir une liste de choses à rechercher dans la chaîne de cible.

Pour ce métacaractère... Le processeur d'expression classique...
crochets ([ ]) Faites correspondre n’importe lequel des caractères à l’intérieur du crochet à une position de caractère unique. Par exemple, [AB] est une instruction qui correspond à la lettre A ou à la lettre B et [0123456789] indique qu’elle correspond à tout caractère compris entre 0 et 9.
Tiret (-)

Correspond à une plage de caractères. Ainsi, au lieu d'écrire [0123456789], nous pourrions simplement écrire [0-9].

Cette option peut être étendue à des plages de caractères et à plusieurs plages dans un jeu de crochets. Par exemple, [0-9A-C] correspond aux caractères 0 à 9 et A à C.

Remarque : Pour tester un tiret (-) comme littéral entre les crochets, il doit être placé en premier ou en dernier. Par exemple, [-0-9] teste - et 0 à 9.

Tube (|) Faites correspondre l’un des deux choix à une chaîne de cible donnée. Par exemple, b|nat correspond à bat ou nat.

Prenons les exemples suivants :

Modèle Chaîne Correspond à
Win9[58] OS=Win95 Win95
Win95 8 OS=Win98
[0-9] Mozilla/3.0 3
Leçon[A-Z] Leçon a Aucune correspondance car a de minuscule n'est pas compris dans la plage de A à Z de majuscule.

Négation

La négation est un moyen de dire que vous souhaitez faire correspondre n'importe quoi, sauf les caractères donnés. Le métacaractère de négation, le circonflexe ou le caret (^), est utilisé comme premier caractère entre crochets pour dire que vous souhaitez que la correspondance soit autre que les autres caractères entre crochets. Par exemple, pour faire correspondre n’importe quel caractère à l’exception d’un point-virgule (;), vous écrivez

[^;]

Ceci correspondrait à n’importe quel caractère, à l’exception du point-virgule.

Positionnement

Pour forcer une correspondance au début ou à la fin d’une chaîne de cible, deux caractères de remplacement sont utilisés.

Pour ce métacaractère… Le processeur d'expression classique…
Circumflex ou caret (^) Faire correspondre au début de la chaîne. Par exemple, ^[Tt]il correspondrait à la chaîne de cible "Le début" mais ne correspondrait pas à "C’est le début".
Symbole du dollar ($) Faire correspondre à la fin de la chaîne. Par exemple, [Ee]nd$ correspondrait à "This is the end" mais ne correspondrait pas à "The end is a special time".
REMARQUE

Lorsque l’expression normale contient ^ au début et $ à la fin, la chaîne de cible entière doit correspondre à l’expression normale.

Correspondance avec tout

La période (.) est un caractère de métacaractère spécial qui correspond à n’importe quel caractère de la chaîne de cible. Par exemple, l’expression régulière ^…$ correspond à toute chaîne de cible contenant exactement trois caractères. L'expression régulière "…" correspond à toute chaîne de cible contenant au moins trois caractères.

Modèles répétés

Les métacaractères d’itération vous permettent de faire correspondre un modèle plusieurs fois.

Pour ce métacaractère... Le processeur d'expression classique...
Point d'interrogation (?) Ne correspond à aucune instance ou instance du caractère qui précède immédiatement le caractère métacaractère (?). Par exemple, le modèle rea?d correspond au rouge et à la lecture.
Astérisque (*) Correspond à zéro ou plusieurs occurrences du caractère qui précède immédiatement le caractère de remplacement (*). Par exemple, le modèle [0-9]* correspond à n’importe quel nombre de caractères compris entre 0 et 9 (tout entier).
Plus (+) Correspond à une ou plusieurs occurrences du caractère ou de la plage précédente. Par exemple, le modèle trois+ correspondrait à trois, mais pas à travers.
{n}

Faire correspondre le caractère ou la plage de traitement exactement n fois. Le modèle suivant correspond aux numéros de téléphone des États-Unis : [0-9]{3}-[0-9]{3}-[0-9]{4}.

Bien qu’il ne s’agisse pas d’un modèle optimal, il détermine si la chaîne de cible est au format approprié.

{n,m} Faites correspondre le caractère précédent au moins n fois et au plus m fois. Par exemple, fo{1,2}d correspond à la nourriture et à la nourriture, mais pas à la nourriture.

Extraction de modèle

La mise en correspondance des schémas n'est qu'une partie de la puissance des expressions régulières. Les expressions régulières offrent également un mécanisme permettant d’extraire des parties clés d’une chaîne de cible. Pour ce faire, il faut utiliser les parenthèses gauche et droite. Ces extractions sont généralement utilisées comme entrée dans un autre processus et sont accessibles via l’utilisation de %position%, où position est un entier faisant référence au nombre de parenthèses correspondant.

Examinez les exemples suivants d’extraction des modèles :

Modèle Chaîne Correspond à Extraction
Win(9[58]) OS=Win95 Win95 %1% = 95
(Win)(95|8) OS=Win98 Win98

%1% = Win

%2% = 98

Mozilla/([0-9]).([0-9]) Mozilla/3.0 Mozilla/3.03

%1% = 3

%2% = 0

Lesson([A-Z]) Leçon a Aucune correspondance car a de minuscule n'est pas compris dans la plage des zones A à Z de majuscule

Sur cette page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now