2011-07-12 11 views
7

W naszym kodzie jest wyrażenie regularne z poniższego formularza:Co oznacza (? I) w wyrażeniu regularnym .NET?

string regex = @"(?i)foo=(BAR?-[A-Z]+(33|34)?)"; 

Co oznacza „(?i)” na początku meczu regex/zrobić? Przejrzałem dokumentację regex .NET i nie mogę się domyślić, co to jest (?i). Dzięki!

Odpowiedz

12

(?i) aktywuje na wielkość liter.

referencyjny: MSDN, Regular Expression Options (podkreślając przeze mnie):

Można określić opcje dla wyrażeń regularnych w jeden z trzech sposobów:

  • w opcji parametrem System.Text.RegularExpressions.Regex konstruktor klas lub statyczna (udostępniana w języku Visual Basic) metoda porównywania wzorców, taka jak Regex.Regex(String, RegexOptions) lub Regex.Match(String, String, RegexOptions). [...]

  • Stosując opcje śródliniowe w wyrażeniu regularnym ze składnią (? Imnsx-imnsx). Opcja dotyczy wzorca od momentu zdefiniowania opcji do końca wzorca lub do punktu, w którym opcja jest niezdefiniowana przez inną opcję wbudowaną. [...]

  • Stosując opcje liniowe w konkretnej konstrukcji grupującej w wzorcu wyrażenia regularnego ze składnią (? Imnsx-imnsx: podwyrażenie). [...]

3

Wyznacza regex zignorować sprawę. W przyszłości możesz użyć Expresso, aby wymyślić takie rzeczy: enter image description here

1

(?i) włącza niewrażliwość na wielkość liter. Więc jest to zależne od wielkości liter.

1

Włącza ignorowanie sprawy w obrębie grupy obejmującej

Powiązane problemy