2009-10-18 116 views
49

我使用System.Text.RegularExpressions.Regex.IsMatch(testString,regexPattern)在字符串中進行一些搜索。C#RegEx:忽略大小寫模式?

有沒有辦法在regexPattern字符串中指定該模式應忽略大小寫? (即未使用Regex.IsMatch(testString,regexPattern,RegexOptions.IgnoreCase))

回答

103

(?i)內部模式開始不區分大小寫匹配,(?-i)結束它。也就是說,

(?i)foo(?-i)bar 

匹配FOObar但不fooBAR

編輯:我應該說(?-i)開始區分大小寫的匹配 - 如果你想整個模式是不區分大小寫的,那麼你就不需要「結束」的(?i)

+0

結尾(?-i)是必需的還是可以省略的? – core 2009-10-18 01:29:00

+0

可以省略,不會有錯誤。 – 2009-10-18 01:29:45

+2

順便說一下,這種語法也適用於來自其他語言(如Java和Scala)的正則表達式庫。 – Xavi 2011-01-20 18:55:23