Joã*_*lva 21
积极的前瞻是你正在寻找的.正则表达式看起来像这样:
(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+
Run Code Online (Sandbox Code Playgroud)
这里(?=.*[A-Za-z])是正向前瞻,它断言你的字符串至少是一个字符,并(?=.*[0-9])断言它至少有一个数字.重要的是要注意,正向前瞻不会返回匹配,而是断言是否存在匹配.所以,你应该阅读前面的正则表达式"断言它至少有一个字符;断言它至少有一个数字;现在我们知道断言已经通过,只需检查字母数字字符".
这非常有趣,因为它允许您轻松组合应用程序的验证要求,而不会使正则表达式变得非常复杂.例如,如果您现在要求字符串只有 20个字符,则只需添加一个新的正向前瞻断言,如下所示:
(?=[A-Za-z0-9]{20})(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
如果你想在一个正则表达式中使用它,你可以使用"[a-zA-Z].*\\d|\\d.*[a-zA-Z]"虽然两个单独的检查可能更具可读性.
编辑:一个有两个检查的方法,我发现它很可读,可能如下所示:
Regex.IsMatch(password, "\\d") && Regex.IsMatch(password, "[a-zA-Z]")
Run Code Online (Sandbox Code Playgroud)
bool isValid = Regex.IsMatch(password, @"[a-zA-Z]") &&
Regex.IsMatch(password, @"\d");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6352 次 |
| 最近记录: |