Options des expressions régulières
Mise à jour : novembre 2007
Vous pouvez modifier un modèle d'expression régulière à l'aide d'options qui affectent le fonctionnement de la recherche de correspondances. Les options des expressions régulières peuvent être spécifiées à l'aide de l'une des deux solutions suivantes : elles peuvent être définies dans le paramètre options du constructeur Regex (pattern, options), où options désigne une combinaison d'opérations de bits OR de valeurs énumérées RegexOptions, ou elles peuvent être définies dans le modèle d'expression régulière à l'aide d'une construction de regroupement inline (?imnsx-imnsx:) ou d'une construction diverse (?imnsx-imnsx).
Dans les constructions d'options inline, la présence d'un signe moins (-) devant une option ou un ensemble d'options désactive ces options. Par exemple, la construction inline (?ix-ms) active les options IgnoreCase et IgnorePatternWhiteSpace et désactive les options Multiline et Singleline. Toutes les options des expressions régulières sont désactivées par défaut.
Le tableau suivant répertorie les membres de l'énumération RegexOptions ainsi que les caractères d'options inline équivalents. Notez que les options RightToLeft et Compiled s'appliquent à une expression considérée comme un tout et ne sont pas autorisées inline. (Elles ne peuvent être spécifiées que dans le paramètre options du constructeur Regex.) Les options None et ECMAScript ne sont pas autorisées inline).
Membre RegexOption |
Caractère inline |
Description |
---|---|---|
None |
Non applicable |
Spécifie qu'aucune option n'est définie. |
IgnoreCase |
i |
Spécifie une correspondance ne respectant pas la casse. |
Multiline |
m |
Spécifie le mode multiligne. Modifie la signification de ^ et $ de telle sorte qu'ils correspondent, respectivement, au début et à la fin de n'importe quelle ligne et non simplement au début et à la fin de la chaîne complète. |
ExplicitCapture |
n |
Spécifie que les seules captures valides sont des groupes explicitement nommés ou numérotés du formulaire (?<name>...). Les parenthèses peuvent ainsi se comporter comme des groupes autres que des groupes de capture, sans la lourdeur syntaxique de type (?:...). |
Compiled |
Non applicable |
Spécifie que l'expression régulière sera compilée dans un assembly. Génère le code MSIL (Microsoft Intermediate Language) correspondant à l'expression régulière ; entraîne une exécution plus rapide aux dépens du temps de démarrage. |
Singleline |
s |
Spécifie le mode ligne simple. Modifie la signification du caractère point (.) de telle façon qu'il corresponde à tout caractère (y compris le caractère \n). |
IgnorePatternWhitespace |
x |
Spécifie que l'espace blanc sans séquence d'échappement est exclu du modèle et permet l'insertion de commentaires après le signe numéro (#). (Consultez Caractères d'échappement pour obtenir la liste des caractères espace blanc avec échappement). Notez que l'espace blanc n'est jamais supprimé d'une classe de caractères. |
RightToLeft |
Non applicable |
Spécifie que la recherche s'effectue de droite à gauche et non de gauche à droite. Une expression régulière pourvue de cette option évolue à partir de la gauche de la position de départ et non à partir de la droite. (Par conséquent, la position de départ doit être spécifiée comme étant la fin de la chaîne et non comme le début.) Cette option ne peut pas être définie en cours de route, afin d'empêcher la définition d'expressions régulières comportant des boucles sans fin. Néanmoins, les constructions de postanalyse (?<) fournissent quelque chose de semblable qui peut être utilisé comme sous-expression. RightToLeft ne change que le sens de la recherche. Il n'inverse pas la sous-chaîne qui fait l'objet de la recherche. Les assertions lookahead et lookbehind ne changent pas : la préanalyse se fait vers la droite ; la postanalyse se fait vers la gauche. |
ECMAScript |
Non applicable |
Spécifie que le comportement conforme ECMAScript est activé pour l'expression. Cette option peut être uniquement utilisée en liaison avec les indicateurs IgnoreCase et Multiline. L'utilisation d'ECMAScript avec n'importe quel autre indicateur se traduit par une exception. |
CultureInvariant |
Non applicable |
Spécifie que les différences culturelles de langage sont ignorées. Consultez Exécution d'opérations indépendantes de la culture dans l'espace de noms RegularExpressions pour plus d'informations. |