当前位置: 首页 > 知识库问答 >
问题:

具有显式选项的正则表达式 [已关闭]

阎辰钊
2023-03-14

想改进这个问题吗?通过编辑这篇文章来更新问题,使其仅关注一个问题。

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

一个或多个小写字符,无论顺序一个或多个大写字符,无论顺序一个或多个数字,无论此特殊字符的一个或多个顺序“!# $ %

我如何使用正则表达式做到这一点?

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>

提前感谢您的时间和支持

共有2个答案

浦德义
2023-03-14

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

我会使用 .长度(比使用正则表达式快得多),然后,小而简单的正则表达式来检查每个字符类型。

江佐
2023-03-14
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
}

取自正则表达式,用于 ASP.net 中的强密码

另外,我想我会发布这个 - 这需要一点时间,但我相信这也应该完成你想要的

^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).+$
 类似资料:
  • 本文向大家介绍xgboost的正则项表达式?相关面试题,主要包含被问及xgboost的正则项表达式?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: T为叶子节点的个数,w为叶子节点的分数

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我想将所有表达式与一个空格完全匹配。目前,我正在使用。但是,这似乎不是一个很好的方法。 问题答案: 为什么不?很好,有点复杂:

  • 我有一个具有多个可选和非捕获组的正则表达式。所有这些组都可能发生,但不必发生。正则表达式应使用非捕获组返回整个字符串。 当我将最后一个组也设置为可选时,正则表达式将具有多个分组结果。当我将第一组设置为非可选时,正则表达式匹配。为什么? 输入将类似于,预期输出。 提前感谢!

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我使用这个正则表达式: 要匹配这样的字符串: 分为4组: 问:我如何使第一个组可选,使结果组是一个空字符串? 我想在每种情况下得到4组,如果可能的话。 这种情况下的输入字符串:(第一组后面没有下划线)

  • 由两位数字后跟三个大写字母表示的产品代码。 在一行开头找到从100欧元到999欧元的所有欧元值。

  • 在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 ngx.re.* 的规范,即使您对 Lua 语言中的规范非常熟悉,我们仍不建议使用 Lua 中的正则表达式。一是因为 Lua 中正则表达式的性能并不如 ngx.re.* 中的正则表达式优秀;二是 Lua 中的正则表达式并不符合 POSIX 规范,而 ngx.re.* 中实现的是标准的 POSIX 规范,后者明显更具备通用