[英]Regex without special characters
我正在使用正则表达式来验证密码
这是我的正则表达式配置
@"^(?!.*[\s])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,32}$"
我的标准是
我正在等待的测试:
Fing!2020 Is Invalid ( but it returns valid )
我检查错误的代码:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
var totalTestCases = int.Parse(Console.ReadLine());
string S = "";
string pattern = @"^(?!.*[\s])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,32}$";
var n = 0;
do
{
n++;
S = Console.ReadLine();
if (S != "")
{
// Console.WriteLine("{0}", Regex.IsMatch(S, pattern) ? "Senha valida." : "Senha invalida.");
string test = Regex.IsMatch(S, pattern) ? "Password valid." : "Password invalid.";
Console.WriteLine(test);
}
} while (n < totalTestCases);
}
}
尝试将此 Regex 放入您的代码中,它将适用于您的条件。
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,32}$/
用下面的代码替换模式变量:)
string pattern = @"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,32}$";
@Arpit Patel 的回答非常好,但我会花一点时间来解释你的方法有什么问题。 让我们分解一下:
所以 Arpit 的回答是:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,32}$
取消“任何事情”并插入合法字符。 因此,由于禁止使用空格,因此不再需要负面展望。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.