c#正则表达式中至少一个字母和至少一个数字

本文关键字:一个 数字 正则表达式 | 更新日期: 2023-09-27 18:11:59

我正在尝试检查密码是否至少包含一个字母和数字。

下面的代码似乎不起作用。

密码可以是" test1 "或"11111111 t"等。

不能全是字母或全是数字。

任何想法?

const string pattern = @"/[a-z].*'d|'d.*[a-z]/";
var match = Regex.Match(password, pattern);

解决:

var rule1 = password.Any(char.IsLetter);
var rule2 = password.Any(char.IsNumber);

const string pattern = @"[a-z].*'d|'d.*[a-z]";

c#正则表达式中至少一个字母和至少一个数字

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

var rule1 = str.All(char.IsLetter);
var rule2 = str.All(char.IsNumber);

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

这就行了

^(?=.*[a-zA-Z])(?=.*[0-9]).+$

我使用正面查找(?=)来完成此操作,然后允许任何字符.一次或多次。这样,用户就可以输入特殊字符、标点符号等。

这里有一个

((.*'d.*[a-zA-Z].*)|(.*[a-zA-Z].*'d.*))

模式周围的斜杠用于具有正则表达式字面量的语言。c#没有。

从模式中删除斜杠:

const string pattern = @"[a-z].*'d|'d.*[a-z]";

至少一个大写、一个小写、一个数字、一个特殊字符且至少8个字符的正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9 :])(?=.{8,})