Exemples d'expressions régulières

Vous pouvez remplacer une propriété de reconnaissance par une expression régulière ou une plage numérique afin de baser la reconnaissance non pas sur une valeur exacte, mais sur un masque déterminant plusieurs valeurs possibles. L'utilisation d'un masque rend la reconnaissance d'objet moins restrictive. Vous pouvez convertir des propriétés en expressions régulières ou en plages numériques tant à partir de l'Editeur de point de vérification que de la mappe d'objets de test.

Pour plus d'informations sur l'utilisation d'expressions régulières, voir Remplacement d'une propriété à correspondance exacte par un masque.

Lorsque vous convertissez une valeur en expression régulière, vous pouvez tester cette dernière pendant que vous l'éditez en utilisant l'Evaluateur d'expression régulière.

Exemples de syntaxe d'expression régulière

Ces exemples représentent des cas typiques d'utilisation d'expressions régulières.

Ancrage

Tous les exemples qui suivent, à commencer par l'exemple général, sont sans ancrage. Dans l'Evaluateur d'expression régulière, le masque n'est pas ancré par défaut, ce qui signifie qu'il peut apparaître n'importe où dans la chaîne. La chaîne peut aussi contenir d'autres caractères. Le principe de de l'ancrage est le même que celui de la fonction de recherche que l'on trouve dans la plupart des logiciels : lorsque vous recherchez un texte, vous pouvez spécifier s'il doit être recherché seul (mot entier) ou s'il peut apparaître dans une autre chaîne de texte. Si une chaîne doit être ancrée, utilisez la syntaxe suivante :

^ chaîne$

Les signes "^" et "$" ancrent les caractères dans la chaîne. Le signe "^" représente le début de la chaîne et le signe "$" en représente la fin, mais seulement lorsqu'ils se trouvent respectivement au début et à la fin du masque. Autrement dit, le signe "^" n'a cette signification particulière que lorsqu'il est le premier caractère du masque, et le signe "$" n'a cette signification particulière que lorsqu'il est le dernier caractère du masque.

Par exemple, si vous souhaitez vérifier qu'une propriété a pour valeur une chaîne spécifique de caractères, veillez à ancrer cette chaîne. Prenons le cas d'un bon de commande. Le libellé "Commande" apparaît si le client ne passe qu'une seule commande et le libellé "Commandes" apparaît s'il passe plusieurs commandes. Vous souhaitez vérifier que ce client n'a passé qu'une seule commande. Pour cela, remplacez la valeur de la propriété 'text' du libellé par l'expression régulière suivante :

^Commande$

Dans ce cas, "Commande" est la seule valeur concordant avec le masque. "Commandes" ne concorde pas.

Exemple général

Bloc-notes

Supposons que vous souhaitez vérifier qu'une application telle que le Bloc-notes Windows a été ouverte. Vous pouvez utiliser une expression régulière à la place de la propriété 'caption' pour vérifier que la chaîne "Bloc-notes" apparaît dans la bannière. La condition à remplir est que le mot "Bloc-notes" apparaisse n'importe où dans la valeur de la propriété. Si la propriété 'text' de l'élément caption est "Rapport.txt - Bloc-notes" (signifiant que le Bloc-notes est ouvert sur un fichier appelé Rapport.txt), il y a concordance car la valeur de la propriété contient bien la chaîne "Bloc-notes".

Le comportement par défaut est de considérer comme concordante la chaîne spécifiée, même lorsqu'elle est contenue dans une chaîne plus grande. Si vous souhaitez limiter la concordance à la seule chaîne spécifiée, utilisez les symboles d'ancrage décrits plus haut.

Sensibilité à la casse des caractères

[cC]lient

Avec ce masque, tout texte contenant le mot "client avec un "c" majuscule ou minuscule est considéré comme concordant. Cela a son importance, car, par défaut, les comparaisons tiennent compte de la différence majuscule/minuscule (casse des caractères).

Dans l'Evaluateur d'expression régulière, l'option Recherche avec respect de la casse est sélectionnée par défaut. Il est donc tenu compte des majuscules et minuscules. L'exemple précédent est intéressant, car il montre comment déroger à cette règle pour certains caractères seulement. Désélectionnez cette option si vous souhaitez que la casse soit ignorée pour tous les caractères. Dans l'interface de la mappe d'objets, ainsi que dans l'Editeur de point de vérification et le Comparateur de point de vérification, vous pouvez également cliquer à l'aide du bouton droit sur une expression régulière et choisir Expression régulière avec respect de la casse.

Un caractère quelconque

méthode.règlement

Utilisez le point "." pour indiquer un caractère quelconque dans la chaîne. Outre les lettres et d'autres caractères légaux, il peut s'agit d'un espace ou d'un chiffre. Dans ce cas, "mode de règlement" et "modederèglement" concordent tous deux.

Zéro, un ou plusieurs caractères répétés

fo*bar

Utilisez l'astérisque "*" pour indiquer un nombre quelconque d'occurrences du caractère qui le précède, y compris aucune occurrence. Dans cet exemple, "fbar" est accepté ; il en est de même de "fobar", "foobar" et "fooooobar".

Un ou plusieurs caractères répétés

fo+bar

Utilisez le signe plus "+" pour indiquer un nombre quelconque d'occurrences du caractère qui le précède. La différence par rapport à l'utilisation du signe "*" est que le caractère en question doit apparaître au minimum une fois avant le signe "+". La chaîne "fbar" n'est donc pas acceptée, contrairement à "fobar", "foobar" et "fooooobar".

Zéro ou un seul caractère répété

fo?bar

Ce masque tolère l'absence du caractère qui précède le point d'interrogation ou une seule occurrence de ce caractère. Seules deux chaînes concordent avec l'exemple ci-dessus : "fbar" et "fobar".

Chaîne générique

Commande.*client

Utilisez les caractères "." et "*" pour spécifier une chaîne générique. Ce masque tolère un nombre quelconque de caractères quels qu'ils soient. Par exemple, peu importe que l'application insère ou non un espace entre les deux mots ci-dessus. Il y a concordance dans les deux cas.

Tout caractère d'un jeu particulier

Form[ABC]

Ce masque autorise le mot "Form" suivi de l'un des caractères entre crochets (et un seul d'entre eux). Si une zone de votre application spécifie le formulaire utilisé, vous pouvez utiliser ce type d'expression régulière pour faire concorder les chaînes suivantes : "FormA", "FormB" et "FormC".

Un nombre quelconque d'occurrences de l'un des caractères d'un jeu particulier

Form[ABC]*

Ce masque autorise le mot "Form" suivi d'un nombre quelconque d'occurrences de l'un des caractères du jeu spécifié entre les crochets. Si une zone de votre application spécifie le formulaire utilisé, les exemples cités plus haut ("FormA", "FormB" et "FormC") concordent encore. En outre, les répétitions d'un caractère son acceptées (par exemple, "FormAA" ou "FormCCC"), de même que le mot "Form" seul.

Tout caractère hors d'un jeu particulier

Form[^BE]

Ce masque autorise le mot "Form" suivi de n'importe quel caractère excepté "B" et "E". Par exemple, "FormA", "FormC" et "FormG" sont acceptés, mais "FormB" et "FormE" ne le sont pas.

Jeu alphanumérique

Form[A-G]

Vous pouvez spécifier une lettre de la plage spécifiée. Dans cette syntaxe, "FormA", "FormB", "FormC", "FormD", "FormE", "FormF" et "FormG" sont acceptés, mais FormH" et "FormM" ne le sont pas. Il est donc tenu compte de la casse des caractères dans la plage alphanumérique. "Forma" n'est donc pas accepté. Si vous voulez que les lettres minuscules et majuscules de cette même plage soient acceptées, utilisez la syntaxe "Form[a-gA-G]". Pour que toutes les lettres de l'alphabet standard soient acceptées aussi bien en minuscules qu'en majuscules, spécifiez la plage complète "Form[a-zA-Z]".

OU logique

OK|Annuler

Prenons l'exemple d'une boîte de dialogue comportant trois boutons : OK, Annuler et Aide. Pour vérifier que le bouton correct a été cliqué, utilisez une expression régulière pour la propriété label du bouton. Ainsi, la syntaxe ci-dessus permet de s'assurer que le clic a eu lieu sur le bouton OK ou Annuler, et non pas sur Aide.

Expression de groupe

Mon cerf-volant (violet|bleu|vert)

Utilisez une expression de groupe pour opérer sur tous les éléments d'un groupe. Par exemple, pour appliquer un opérateur à un groupe ou trouver une chaîne spécifique avant ou après chaque membre du groupe, vous pouvez utiliser une telle expression. Les parenthèses constituent l'opérateur de groupement et les éléments sont séparés par le signe "|". Dans cet exemple, "Mon cerf-volant violet", "Mon cerf-volant bleu" et "Mon cerf-volant vert" correspondent à l'expression. "Mon cerf-volant rouge" ou "Mon cerf-volant" n'y correspondent pas.

Classes de caractères

Un certain nombre de classes de caractères peuvent être utilisées dans les expressions régulières.

(un seul caractère blanc, tel qu'un espace, une tabulation, un saut de ligne ou un retour chariot)

Les lettres des langues autres que l'anglais sont également acceptées.

Vous pouvez souhaiter faire concorder un numéro de commande. Par exemple :

Commande\d

Cette expression accepte le mot "Commande" immédiatement suivi d'un chiffre unique. Le mot "Commande" seul ne concorde pas. Les exemples suivant concordent : "Commande5", Commande3" et "Commande0". "Commande 3" ne concorde pas.

Commande\d+

Utilisez ce masque pour accepter plusieurs chiffres. \d+ représente un ou plusieurs chiffres. Par exemple, "Commande77" et "Commande235" sont acceptés.

Form\S

Cette expression permet d'accepter le mot "Form" suivi de n'importe quel caractère excepté un espace. Si vous souhaitez vérifier qu'un formulaire de votre application est identifié par une lettre, cette expression convient, car s'il n'y a pas de lettre après le mot "Form", cette valeur ne concorde pas. Par exemple, "FormB" et "FormX" concordent. "Form" et "Form " ne concordent pas.

Les autres classes de caractères fonctionnent sur le même principe.

Caractères spéciaux

Les exemples qui précèdent utilisent certains caractères spéciaux. Dans les expressions régulières, ces caractères ne sont pas interprétés sous leur forme littérale, mais comme opérateurs. Il s'agit des caractères suivants :

Si vous devez utiliser ces caractères sous leur forme littérale dans une expression régulière, vous devez les échapper en les faisant précéder d'une barre oblique inversée "\". Par exemple, si des parenthèses doivent apparaître dans le texte d'un libellé, la propriété text de ce libellé pourrait être la suivante :

Commandes \(expédiées\)

Dans ce cas, le libellé "Commandes (expédiées)" concorderait. Lorsque vous convertissez une valeur en expression régulière dans l'Editeur de point de vérification ou la mappe d'objets, si la valeur d'origine contient l'un de ces caractères spéciaux, celui-ci est échappé automatiquement par Functional Tester.


Retour d'informations