Regex 用于PCI遵从性密码要求的正则表达式

Regex 用于PCI遵从性密码要求的正则表达式,regex,passwords,Regex,Passwords,以下是PCI合规性的密码要求: 必须至少包含一个大写字母 必须至少包含一个小写字母 必须至少包含一个数字 必须至少包含一个特殊字符,如#、!、?、^、,或者, 请告诉我如何创建这样的正则表达式?我不知道怎么做 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#\!\?\^@])$ 特殊字符是单独指定的 ^.*\d.*[a-z].*[A-Z].*[#\!\?\^@].*$ 简单地说,这应该可以帮到你。不要把它当作一个正则表达式。不需要在一个正则表达式中执行此操作,

以下是PCI合规性的密码要求:

  • 必须至少包含一个大写字母
  • 必须至少包含一个小写字母
  • 必须至少包含一个数字
  • 必须至少包含一个特殊字符,如#、!、?、^、,或者,
请告诉我如何创建这样的正则表达式?我不知道怎么做

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#\!\?\^@])$
特殊字符是单独指定的

^.*\d.*[a-z].*[A-Z].*[#\!\?\^@].*$

简单地说,这应该可以帮到你。

不要把它当作一个正则表达式。不需要在一个正则表达式中执行此操作,如果只进行多个正则表达式检查,则更容易更改规则,也更容易阅读

例如,如果您是在Perl中执行此操作,那么

my $ok =
    ($pw =~ /[a-z]/) &&  # Has at least one lowercase char
    ($pw =~ /[A-Z]/) &&  # Has at least one uppercase char
    ($pw =~ /\d/)    &&  # Has at least one digit
    ($pw =~ /[#!?^@]);   # Has punctuation

当您以后需要维护代码时,这将更容易阅读。

使用
lookaheads
如果存在