我看到了这句话
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9_#@%\*\-]{8,24}$
在正则表达式,这是密码检查机制。我读了很少关于正则表达式的课程,但我从未见过组合 ?=.
解释。
我想知道它是如何工作的。在示例中,它搜索至少一个大写字母,一个小写字母和一个数字。我想这就像“如果”。
我看到了这句话
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9_#@%\*\-]{8,24}$
在正则表达式,这是密码检查机制。我读了很少关于正则表达式的课程,但我从未见过组合 ?=.
解释。
我想知道它是如何工作的。在示例中,它搜索至少一个大写字母,一个小写字母和一个数字。我想这就像“如果”。
(?=regex_here)
是一个 积极的向前看。它是一个零宽度断言,意味着它匹配包含在其中的正则表达式后面的位置 (?=
和 )
。要从链接页面引用:
lookaround实际匹配字符,但随后放弃匹配, 仅返回结果:匹配或不匹配。这就是他们的原因 称为“断言”。它们不消耗字符串中的字符,但是 只断言是否可以匹配。 Lookaround允许你 创建无法创建的正则表达式 他们,或没有他们会变得非常漫长。
该 .
不是前瞻的一部分,因为它匹配任何不是行终止符的单个字符。