2009-10-18 17 views
49

Używam System.Text.RegularExpressions.Regex.IsMatch (testString, regexPattern), aby wykonać niektóre wyszukiwania w ciągach.C# RegEx: Ignoruj ​​wielkość liter ... we wzorcu?

Czy istnieje sposób określenia w łańcuchu regexPattern, że wzorzec powinien ignorować wielkość liter? (Tj. Bez użycia Regex.IsMatch (testString, regexPattern, RegexOptions.IgnoreCase))

Odpowiedz

103

(?i) w obrębie wzorca rozpoczyna się dopasowywanie niewrażliwe na wielkość liter, (?-i) kończy je. Oznacza to, że

(?i)foo(?-i)bar 

mecze FOObar ale nie fooBAR.

EDIT: Powinienem powiedział (?-i) rozpoczyna dopasowywanie wielkości liter - jeżeli chcesz cały wzór, aby być rozróżniana wielkość liter, wtedy nie trzeba „skończyć” THE (?i).

+0

Czy wymagane jest zakończenie (? -i), czy można je pominąć? – core

+0

Można go pominąć bez błędu. –

+2

BTW, ta składnia działa również w bibliotekach regex z innych języków, takich jak Java i Scala. – Xavi

Powiązane problemy