我已经看到了很多执行逻辑 AND 的密码验证示例。例如,密码必须有
- 至少一位数 (AND)
- 至少一个字符 (AND)
- 长度在 6 到 15 之间
这可以用正则表达式 'positive lookahead' 写成:
var includePattern = @"^(?=.*\d)(?=.*[a-zA-z]).{6,15}$";
bool tfMatch = Regex.IsMatch("Password1", includePattern); //
if (tfMatch)
//continue... valid thus far...
我的问题是我想排除某些组或模式,本质上是做一个逻辑“或”;例如,假设我想匹配(如果以下任何一项为真,则使密码无效):
- 至少找到一个空间(或)
- 至少找到一个单引号 (OR)
- 至少找到一个双引号 (OR)
- 野兽的字符串“666”号
在 excludePattern 上寻求帮助 .. 积极前瞻?负前瞻?
var excludePattern = @"^( ...xxx... $"; //<== **** what goes in here??
bool tfMatch = Regex.IsMatch("Pass 666 word", excludePattern); //
if (tfMatch)
//DONT continue... contains excluded
我正在使用 c# 正则表达式,但任何风格都可以开始。