87 votes

C# RegEx : Ignorer la casse... dans le modèle ?

J'utilise System.Text.RegularExpressions.Regex.IsMatch(testString, regexPattern) pour effectuer des recherches dans des chaînes de caractères.

Existe-t-il un moyen de spécifier dans la chaîne regexPattern que le motif doit ignorer la casse ? (c'est-à-dire sans utiliser Regex.IsMatch(testString, regexPattern, RegexOptions.IgnoreCase)).

166voto

stevemegson Points 6741

(?i) dans le motif permet de commencer la correspondance sans tenir compte de la casse, (?-i) la termine. C'est-à-dire,

(?i)foo(?-i)bar

correspond à FOObar mais pas fooBAR .

EDITAR: J'aurais dû dire (?-i) lance la correspondance sensible à la casse - si vous souhaitez que l'ensemble du motif soit insensible à la casse, vous n'avez pas besoin de "terminer" la balise (?i) .

0 votes

La terminaison (?-i) est-elle obligatoire ou peut-elle être omise ?

2 votes

D'ailleurs, cette syntaxe fonctionne également dans les bibliothèques regex d'autres langages comme Java et Scala.

0 votes

@DanielK compte tenu de votre édition, il se lit que (?-i) commence correspondance sensible à la casse. Dans l'exemple, (?-i) termine correspondance sensible à la casse. Est-ce que quelque chose m'échappe ? L'exemple est-il erroné ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X