C# 带有显式选项的正则表达式

C# 带有显式选项的正则表达式,c#,asp.net,regex,C#,Asp.net,Regex,我需要检查之前保存,如果一个文本框(ASP.NET)的密码至少有 一个或多个小写字符,不考虑顺序 一个或多个大写字符,不考虑顺序 一个或多个数字,不考虑顺序 一个或多个此特殊字符“!#$%&%'()*。。。 最小长度为o8个字符 如何使用Regex表达式实现这一点 ex: #Abc123aB (valid) abcAbc123aB123& (valid) abc123abc (invalid) missing uppercase and special char 编辑

我需要检查之前保存,如果一个文本框(ASP.NET)的密码至少有

一个或多个小写字符,不考虑顺序 一个或多个大写字符,不考虑顺序 一个或多个数字,不考虑顺序 一个或多个此特殊字符“!#$%&%'()*。。。 最小长度为o8个字符

如何使用Regex表达式实现这一点

ex: #Abc123aB (valid)
    abcAbc123aB123&  (valid)
    abc123abc (invalid) missing uppercase and special char
编辑

<tr>
  <td>Password</td>
  <td><asp:TextBox ID="txtClave" TextMode="Password"  runat="server" > </asp:TextBox>&nbsp; 
  <div id="divmensaje" style="display:inline-block">
  <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtClave" ValidationExpression="^[A-Za-z0-9_\.\*#]{8,25}$" ErrorMessage="Wrong format"></asp:RegularExpressionValidator>
  </div> 
  </td>                
</tr>

暗语

提前感谢您的时间和支持

虽然可以做到这一点,但我不会尝试用一个
正则表达式来解决它。避免使用代码行有什么意义?代码变得更复杂,我相信它也会更慢


我会使用
.length
检查长度(比使用
regex
快得多)然后,用小而简单的
regex
检查每种字符类型。

我编辑了这篇文章并感谢你,用这张表格abc123#文本是有效的,但不应该因为缺少大写字母,我会尝试从服务器端检查Nefarii的答案可能重复感谢你的时间,我会继续提供你的建议我在这里问了一个问题,想知道这是否可能。我不想用一些可能对他们来说非常基本的问题来打扰任何人吗?不客气。基本问题没有问题,但你应该始终发布你尝试过的内容,或者为什么一些研究的结果对你没有帮助。谢谢你的时间,我将测试更新的ans我们将包括正则表达式。非常感谢这正是我想要的,谢谢!!!
^(?=.{8,})(?=.[a-z])(?=.[a-z])(?=.[0-9])(?=.*\W)。+$
String password = "Aa!1asdetD"
HashSet<char> specialCharacters = new HashSet<char>() { '!', '@', '%', '$', '#' };
if (password.Any(char.IsLower) && //Lower case 
     password.Any(char.IsUpper) &&
     password.Any(char.IsDigit) &&
     password.Length > 8
     password.Any(specialCharacters.Contains))
{
  //valid password
}
^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).+$