?=在^之后是什么意思?

?=在^之后是什么意思?

问题描述:

以下是强密码验证之一,它至少包含六个字符并包含数字,符号或标点符号。?=在^之后是什么意思?

(?x)^(?=.* (\d | \p{P} | \p{S})).{6,} 

什么的(?=.*(?x)^后的含义是什么?

我明白?= expr是Lookahead,检查后面的文本是否匹配expr。但在这种情况下,只有字符串开头的^在前面。

+2

我认为我们可能对这里的“前面”这个词有不同的理解 - 在那个时候,'^'已经匹配了,所以它在后面*。 – 2013-04-22 06:51:45

在词:

的注释标志被设置((?x))。

字符串(^)必须首先,它必须跟(?=)零个或多个字符(.*)的开始,然后或者((||))数字(\d),一个标点符号(\p{P})或一个符号(\p{S})。

字符串的开头之后,必须有6个或更多的解释它的任何字符(.{6,}

呢?

+0

'。*表示零个或多个字符,不是一个或多个字符... – Grhm 2013-04-22 08:16:05

+0

@Grhm是的,谢谢。纠正。我知道,我似乎继续打错了。 – Dukeling 2013-04-22 09:21:25

+0

是的,它的确如此。谢谢! – gwillhan 2013-04-22 18:44:47