Les caractères d’échappement

Les expressions régulières contiennent des caractères permettant de spécifier des parties de modèles. Ils doivent être précédés par un antislash \ de manière à être considérés comme un caractère réel. Par exemple, le caractère ? signifie que le caractère précédent peut apparaître zéro ou une fois. Pour faire une recherche sur le point d’interrogation lui-même, il faut le préfixer d’un antislash :

Console.WriteLine(Regex.Match(Original, @"lhu?")); 
Console.WriteLine(Regex.Match(Original, @"lhu\?")); 

Le résultat affiché est le suivant :

lhu_ 
lhu? 

Le résultat n’est pas identique suivant que le caractère ? est échappé ou non. Dans la première instruction, l’expression régulière recherche une suite de caractères pouvant être lh ou lhu alors que pour la seconde, la recherche porte sur la suite exacte lhu?.

Les méthodes statiques Escape et Unescape de la classe Regex permettent de transformer les caractères dans leur équivalent échappé :

Escape Unescape
Console.WriteLine(Regex.Escape(@"?"));        // \? 
Console.WriteLine(Regex.Unescape(@"\?"));    // ? 
Pour consulter la suite, découvrez le livre suivant :
couv_EI9C19VIS.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les options de recherche
Suivant
Les ensembles