【问题标题】:Regular Expression - Password正则表达式 - 密码
【发布时间】:2015-06-19 11:46:56
【问题描述】:

这个正则表达式与/^(\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*){6-20}$/匹配什么样的字符串(密码)?

我尝试了 6-20 个字符的密码,包括小写 [a-z]、大写 [A-Z] 和一个数字 (0-9),但没有乐趣!

【问题讨论】:

  • 你确定最后一部分{6-20}吗?它的意思不是“6 到 20 次”,而是匹配文字字符串{6-20}。如果要匹配“6 到 20 次”,请改写 {6,20}。但是即使有了它,它也有太多的回溯,一些PCRE引擎找不到任何东西。
  • 谢谢。你的建议有效。你拯救了我的一天

标签: regex pcre


【解决方案1】:

如果这是 Perl,则字符串必须是一个数字、一个小写字母、一个大写字母加上任意数量的其他 \w 字符以及字符串末尾的字面意义上的 {6-20}。例如,1aA{6-20} 为真。

我认为原作者缩进了{6,20}而不是{6-20}

这是一个复杂的正则表达式。我认为以下内容会更容易理解和更快:

/^\w{6,20}$/ && /\d/ && /[a-z]/ && /[A-Z]/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2023-03-06
    • 2010-11-18
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多