【问题标题】:Regular expression accepts all characters with at least five characters正则表达式接受至少五个字符的所有字符
【发布时间】:2012-07-01 12:14:52
【问题描述】:

我在网上看到过以下正则表达式。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

它只验证字符串是否:

  • 至少包含 (1) 个大写字母
  • 至少包含 (1) 个小写字母
  • 至少包含 (1) 个数字或特殊字符
  • 长度至少包含 (8) 个字符

但我试图让它包含至少 5 个字符,同时允许用户使用他们选择的任何字符。

【问题讨论】:

  • 那你为什么需要正则表达式?
  • 这里不需要正则表达式。只需检查您使用的任何编程语言中字符串的长度是否 >= 5。
  • 请不要使用烦人的密码限制策略。
  • 事情可能需要不时更新,所以我从一个接受所有内容的广泛正则表达式开始

标签: regex


【解决方案1】:

正则表达式.{5} 将匹配任何包含至少五个字符的字符串。请注意,除了换行符之外,字符可以是 anything,因此由五个空格组成的字符串将匹配。

【讨论】:

  • 不,正则表达式.{5} 匹配恰好五个字符。如果您想要更多,请使用.{5,}
  • ephemient:许多正则表达式实现将接受目标字符串中任何位置的匹配。除非匹配函数隐式锚定搜索,否则.{5} 将匹配至少包含五个字符的任何字符串。
  • @ephemient:三人组是正确的。我故意省略了 ^ 和 $ 以获得最短的正则表达式。 ^.{5,}$ 当然也可以。
猜你喜欢
  • 1970-01-01
  • 2018-07-11
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多