C# 强密码的正则表达式
我需要一个正则表达式,其中至少包含以下五个字符类中的两个:C# 强密码的正则表达式,c#,regex,winforms,C#,Regex,Winforms,我需要一个正则表达式,其中至少包含以下五个字符类中的两个: 小写字符 大写字符 数字 标点符号 “特殊”字符(例如,@$%^&*()u+\ 124; ~-=\{}[]:“;”/`等) 这是我迄今为止所做的 int upperCount = 0; int lowerCount = 0; int digitCount = 0; int symbolCount = 0; for (int i = 0; i < password.Length; i++) { if (Char.IsU
- 小写字符
- 大写字符
- 数字
- 标点符号
- “特殊”字符(例如,
{}[]:“;”/`等)@$%^&*()u+\ 124; ~-=\
int upperCount = 0;
int lowerCount = 0;
int digitCount = 0;
int symbolCount = 0;
for (int i = 0; i < password.Length; i++)
{
if (Char.IsUpper(password[i]))
upperCount++;
else if (Char.IsLetter(password[i]))
lowerCount++;
else if (Char.IsDigit(password[i]))
digitCount++;
else if (Char.IsSymbol(password[i]))
symbolCount++;
但是我需要一个带“或”条件的正则表达式。换句话说,您需要的密码不仅仅包含一个“类”字符。然后您可以使用
^(?![a-z]*$)(?![A-Z]*$)(?!\d*$)(?!\p{P}*$)(?![^a-zA-Z\d\p{P}]*$).{6,}$
说明:
^#字符串的开头
(?![a-z]*$)#断言它不只是包含小写字母
(?![A-Z]*$)#断言它不只是包含大写字母
(?!\d*$)#断言它不仅仅包含数字
(?!\p{p}*$)#断言它不仅仅包含标点符号
(?![^a-zA-Z\d\p{p}]*$)#或上述的倒数
.{6,}#至少匹配六个字符
$#字符串末尾
任何长度要求?当前,<代码> 1A < /代码>将是一个有效的密码。此外,您是否考虑过“代码> E/<代码>或<代码> <代码>或 <代码>字母?像魅力一样。谢谢!
^(?![a-z]*$)(?![A-Z]*$)(?!\d*$)(?!\p{P}*$)(?![^a-zA-Z\d\p{P}]*$).{6,}$