Как сделать регистр соответствия регулярным выражениям нечувствительным?

У меня есть регулярное выражение для почтового кода Канады.

^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$

Он работает нормально, но принимает только прописные буквы. Я хочу, чтобы он работал как для столичных, так и для небольших букв.

Ответ 1

Просто используйте опцию IgnoreCase, см. .NET регулярные параметры выражения

Таким образом, ваше создание регулярных выражений может выглядеть так

Regex r = new Regex(@"^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$", RegexOptions.IgnoreCase);

Я также удалил все ваши {1} потому что это лишнее. Каждый элемент по умолчанию согласован один раз, не нужно указывать это явно.

Другая возможность - использовать встроенные модификаторы, если вы не можете установить его на объект.

^(?i)[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$