Rétroaction
Lorsque des expressions régulières ont des modèles de mise en correspondance facultatifs ou de rechange, le moteur de mise en correspondance des expressions régulières, à un stade de son évaluation d'une chaîne d'entrée, peut créer un branchement dans une ou plusieurs directions pour effectuer toutes les correspondances possibles. Si la mise en correspondance ne réussit pas dans la première direction dans laquelle le moteur recherche, ce dernier doit revenir dans la chaîne d'entrée à l'emplacement dans lequel le branchement a été créé et essayer une autre correspondance.
Exemple : une expression régulière conçue pour rechercher les deux orthographes de la couleur grise en anglais : gray et grey. La barre verticale (caractère |) s'utilise pour créer des expressions régulières gr(a|e)y
, qui peuvent correspondre aux deux orthographes. Lorsque l'expression régulière est appliquée à la chaîne d'entrée greengraygrowngrey
, le moteur recherche d'abord la correspondance de gray
. Il identifie les deux premiers caractères de la chaîne d'entrée, gr
, puis s'arrête sur le e
de green
. Il recule sur le r
(la dernière correspondance trouvée avant le caractère d'alternative) et essaie de trouver grey
. Après s'être arrêté sur le deuxième e
, le moteur poursuit la recherche et finit par retrouver les deux mots incorporés gray
et grey
.
L'exemple de code suivant indique comment créer cette expression régulière et l'appliquer à la chaîne d'entrée.
' Define strings: "gray" and "grey".
Dim r As New Regex("gr(a|e)y")
Dim m As MatchCollection = r.Matches("greengraygrowngrey")
Console.WriteLine("Number of groups found = " & m.Count.ToString())
// Define strings: "gray" and "grey".
Regex r = new Regex("gr(a|e)y");
MatchCollection m = r.Matches("greengraygrowngrey");
Console.WriteLine("Number of groups found = " + m.Count.ToString ());