Regex 不带空格的密码验证正则表达式C#

Regex 不带空格的密码验证正则表达式C#,regex,Regex,密码必须至少包含8个符号 任意顺序至少2位数字 最小1个特殊字符(任意顺序)和 不能允许空白 我有这样的想法: (?=.*\d.*\d)(?=.*[$/@:?{~!^`\[\]]{1,}).{8,} UPD解决方案: (?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,} (?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,} 将其锚定到开始和结束,并对空白进行负面展望,我的建议如下

密码必须至少包含8个符号

任意顺序至少2位数字

最小1个特殊字符(任意顺序)和

不能允许空白

我有这样的想法:

(?=.*\d.*\d)(?=.*[$/@:?{~!^`\[\]]{1,}).{8,}
UPD解决方案:

(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
将其锚定到开始和结束,并对空白进行负面展望,我的建议如下:

^(?!\d+$)(?![$/@:?{~!^`\[\]]+$)[$/@:?{~!^`\[\]\d]{8,}$

注意:您需要找到另一种方法来检查至少两个数字,如果您的语言支持否定类,我会将
更改为
\S

(?=\S*\d){2}(?=\S*[$/@:?{~!^`\[\]]){1,}\S{8,}
如果没有,则输入
[^\s]

只需将其添加到现有的正则表达式中。一个负前瞻检测一个或多个空格。

这里是另一个:

^(?=(?:.*\d){2}(?=.[$/@:?{!^`\[\]])\S{8,}$


正好是2位还是最少2位?对于特殊字符也是一样对不起,最少2位,更新的引用:可能重复@Chase,因为
\S{8,}
将检查空格,无需在lookaheads中使用
\S
。也缺少
^
$
锚。
(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
 (?!.*?\s+.*?)