2009-10-18 5 views
49

Ich benutze System.Text.RegularExpressions.Regex.IsMatch (testString, regexPattern), um einige Suchen in Strings zu tun.C# RegEx: Ignoriere Fall ... im Muster?

Gibt es eine Möglichkeit, in der regexPattern-Zeichenfolge anzugeben, dass das Muster case ignorieren soll? (Das heißt ohne Verwendung Regex.IsMatch (teststring, regexPattern, RegexOptions.IgnoreCase))

Antwort

103

(?i) innerhalb des Musters beginnt, Groß- und Kleinschreibung Matching, (?-i) endet. Das heißt,

(?i)foo(?-i)bar 

Spiele FOObar aber nicht fooBAR.

EDIT: soll ich gesagt haben (?-i) case-sensitive Matching beginnt - wenn Sie das gesamte Muster sein wollen Groß- und Kleinschreibung, dann müssen Sie nicht auf „Ende“ der (?i).

+0

Ist die Endung (? -i) erforderlich oder kann sie weggelassen werden? – core

+0

Es kann ohne Fehler weggelassen werden. –

+2

BTW, diese Syntax funktioniert auch in Regex-Bibliotheken aus anderen Sprachen wie Java und Scala. – Xavi