C#regx表达式任何人都能解 至少一个小写字母 至少一个大写字母 至少是特殊的性格, 至少一个数字 长度至少为8个字符
问题是在regx模式中的“/d”处显示错误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)) {
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,它可以根据您的需要正确地工作。