Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
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.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
' 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: {0}", m.Count)
End Sub
End Module
' The example displays the following output:
' Number of groups found: 2
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
// Define strings: "gray" and "grey".
Regex r = new Regex("gr(a|e)y");
MatchCollection m = r.Matches("greengraygrowngrey");
Console.WriteLine("Number of groups found: {0}", m.Count);
}
}
// The example displays the following output:
// Number of groups found: 2