如何使正则表达式匹配不区分大小写?

khu*_*ram 27 .net c# regex

我有加拿大邮政编码的正则表达式.

^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$
Run Code Online (Sandbox Code Playgroud)

它工作正常,但只接受大写字母.我希望它适用于大写和小写字母.

ste*_*ema 73

只需使用该选项IgnoreCase,请参阅.NET正则表达式选项

所以你的正则表达式创建看起来像这样

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

我也删除了你的全部{1}因为它是多余的.每个项目默认匹配一次,无需明确说明.

另一种可能是使用内联修饰符,当您无法在对象上设置它时.

^(?i)[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$
Run Code Online (Sandbox Code Playgroud)

  • 提高了提及“(?i)”前缀的分数,该前缀在 MVC 中的 [RegularExpression("regex-string")] 验证属性中声明正则表达式时派上用场。谢谢你! (3认同)