C#正则表达至少一个字母和至少一个数字

Fab*_*bii 1 c# regex

我正在尝试检查密码是否至少包含一个字母和数字.以下似乎没有用.

密码可以是"tester1"或"11111111t"等.

不能是所有字母或所有数字.

有任何想法吗?

const string pattern = @"/[a-z].*\d|\d.*[a-z]/";
var match = Regex.Match(password, pattern);
Run Code Online (Sandbox Code Playgroud)

解决了:

var rule1 = password.Any(char.IsLetter);
var rule2 = password.Any(char.IsNumber);
Run Code Online (Sandbox Code Playgroud)

这也有效:

const string pattern = @"[a-z].*\d|\d.*[a-z]";
Run Code Online (Sandbox Code Playgroud)

I4V*_*I4V 6

我会使用更容易维护的简单规则,而不是使用正则表达式.例如:

var rule1 = str.All(char.IsLetter);
var rule2 = str.All(char.IsNumber);
Run Code Online (Sandbox Code Playgroud)

您可以通过丰富您的规则char.IsLower,char.IsUpper等等.

  • `str.Any()`,不是吗?(虽然我很同情非正则表达式方法!) (6认同)