正则表达式包括所有特殊字符

时间:2019-02-28 14:02:37

标签: c# asp.net regex

我似乎找不到合适的答案。

我需要一个正则表达式,以确保至少有one special characterone numberone upperone lower,并且长度至少为8。

我在这里有一些,但是由于某种原因,当我添加更多字符时,它们无法识别它们。

ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%.*?&]{8,}" 

我要添加每个特殊字符。

3 个答案:

答案 0 :(得分:1)

请尝试避免使用冗长而复杂的正则表达式,因为将来很难理解和修改它们。而是定义一些简单明了的Regex,然后将其与c#代码结合起来

var hasLowercaseChar = new Regex("[a-z]");
var hasUppercaseChar = new Regex("[A-Z]");
var hasDigitChar = new Regex("[0-9]");
var hasSpecialChar = new Regex("\\$!\\^-@%&\\.\\*");

var input = "" // your input string here
var passwordIsValid = hasLowercaseChar.IsMatch(input)
    && hasUppercaseChar.IsMatch(input)
    && hasDigitChar.IsMatch(input)
    && hasSpecialChar.IsMatch(input)
    && input.Length >= 8;

在上面的示例中,每个正则表达式都很简单,即使您不确定它应该匹配什么,也可以从变量名中推断出这一点

答案 1 :(得分:0)

以下正则表达式可以解决问题:     ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*\W)[\S]{8,}$

答案 2 :(得分:0)

尝试使用正则表达式:(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-])[A-Za-z\d$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-]{8,}

Demo