我有正则表达式,但它没有捕获尖括号

I have regex but its not catch angle bracket

我有正则表达式:

[RegularExpression(@"^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,40}$", 
                   ErrorMessage = "Minimum 8, max 40 characters atleast 1 Uppercase, 1 Lowercase, 1 Number and 1 Special Character")]

我不想要像 <, >(尖括号) 这样的特殊字符。那么有人可以帮助我吗?

您可以使用以下模式:

^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*\W)[^\s<>]{8,40}$

Demo.

请注意,您的原始图案有一些多余的部分。例如,捕获组,一些字符 类,以及 {1,} 量词;所以,他们被删除了。

形态细分:

  • ^ - 字符串的开头。
  • (?=.*[A-Z]) - 必须至少包含一个大写字母。
  • (?=.*[a-z]) - 必须至少包含一个小写字母。
  • (?=.*\d) - 必须至少包含一位数字。
  • (?=.*\W) - 必须包含至少一个非单词字符。
  • [^\s<>]{8,40} 匹配 8 到 40 个字符,不包括空白字符和尖括号。
  • $ - 字符串结束。