2009-10-18 7 views
49

J'utilise System.Text.RegularExpressions.Regex.IsMatch (testString, regexPattern) pour effectuer des recherches dans les chaînes.C# RegEx: Ignorer la casse ... dans le motif?

Existe-t-il un moyen de spécifier dans la chaîne regexPattern que le modèle doit ignorer case? (I.e. sans l'aide de Regex.IsMatch (testString, regexPattern, RegexOptions.IgnoreCase))

Répondre

103

(?i) dans le motif correspondant commence insensible à la casse, il (?-i) extrémités. C'est,

(?i)foo(?-i)bar 

correspond FOObar mais pas fooBAR.

EDIT: Je aurais dû dire (?-i) commence correspondant sensible à la casse - si vous voulez que le motif entier pour être insensible à la casse, alors vous n'avez pas besoin de « mettre fin à » la (?i).

+0

La fin (? -i) est-elle requise ou peut-elle être omise? – core

+0

Il peut être omis sans erreur. –

+2

BTW, cette syntaxe fonctionne également dans les bibliothèques regex d'autres langages tels que Java et Scala. – Xavi