Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#regx表达式任何人都能解 至少一个小写字母 至少一个大写字母 至少是特殊的性格, 至少一个数字 长度至少为8个字符_C# - Fatal编程技术网

C#regx表达式任何人都能解 至少一个小写字母 至少一个大写字母 至少是特殊的性格, 至少一个数字 长度至少为8个字符

C#regx表达式任何人都能解 至少一个小写字母 至少一个大写字母 至少是特殊的性格, 至少一个数字 长度至少为8个字符,c#,C#,问题是在regx模式中的“/d”处显示错误 private void txtpassword_Leave(object sender, EventArgs e) { Regex pattern = new Regex("/^(?=.*[a-z])(?=.*[A-Z])(?=.*/d)(?=.*[#$@!%&*?])[A-Za-z/d#$@!%&*?]{10,12}$/"); if (pattern.IsMatch(txtpassword.Text)) {

问题是在regx模式中的“/d”处显示错误

private void txtpassword_Leave(object sender, EventArgs e) {
    Regex pattern = new Regex("/^(?=.*[a-z])(?=.*[A-Z])(?=.*/d)(?=.*[#$@!%&*?])[A-Za-z/d#$@!%&*?]{10,12}$/");
    if (pattern.IsMatch(txtpassword.Text)) {
        MessageBox.Show("valid");
    } else {
        MessageBox.Show("Invalid");
        txtpassword.Focus();
    }
}
请尝试以下方法:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})

在正则表达式中,反斜杠用于转义。 因此,它应该是\d而不是/d

但是你也可以用[0-9]来代替

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9\s])\S{8,}$
另外,在字符串中使用反斜杠时。
然后是双反斜杠。或者使用逐字记录字符串。F.e.@“foobar”

更多关于这方面的信息,请参阅

示例C#代码:

string[] strings = { "Foo!bar0", "foobar", "Foo bar 0!", "Foo!0" };

Regex rgx = new Regex(@"^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9\s])\S{8,}$");

foreach (var str in strings){
    Console.WriteLine("[{0}] {1} valid.", str, rgx.IsMatch(str) ? "is" : "is not");
}
返回:

[Foo!bar0] is valid.
[foobar] is not valid.
[Foo bar 0!] is not valid.
[Foo!0] is not valid.

/d
应该是
\d
。如果我是你,我会将每个规则放入一个单独的
Regex
对象中,并针对每个规则测试你的字符串。这样,规则更易于阅读、理解、维护和扩展。不允许s和s显示错误在使用c#应用程序的regx代码时无法生成代码中显示错误s和s中显示错误不允许我只是添加了有关使用逐字字符串的信息。反斜杠在普通字符串中转义。@shayaaz也不需要正斜杠吗?F.e.@“\w+”Moien Tajik你能解释一下代码吗,因为我是新学习的c#这能满足上述所有必要的要求吗mentioned@shayaaz是的,它可以满足你所有的需要。如果您访问我提到的链接并将鼠标悬停在regex字符上,它将简单地告诉您它的功能。我还添加了UnitTests,它可以根据您的需要正确地工作。