C#正则表达式

时间:2010-10-29 20:32:16

标签: .net regex windows-forms-designer

我似乎无法让它发挥作用。

我正在寻找一个验证密码的正则表达式。允许的字符为a-zA-Z0-9,但序列必须至少包含1个数字和1个大写字母。

可以这样做吗?

4 个答案:

答案 0 :(得分:2)

^(?=.*[A-Z])(?=.*[0-9])[A-Za-z0-9]+$

应该这样做。

^             # start of string 
(?=.*[A-Z])   # assert that there is at least one capital letter ahead
(?=.*[0-9])   # assert that there is at least one digit ahead
[A-Za-z0-9]+  # match any number of allowed characters 
              # Use {8,} instead of + to require a minimum length of 8 characters.
$             # end of string

答案 1 :(得分:0)

您可以在正则表达式中使用non-zero-width lookahead/lookbehind assertions。例如:

^\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*$

要求至少存在一个数字,一个小写字母和一个大写字母。使用\w可以接受非英语或重音字符(您可能想要或不想要这些字符)。否则请改用[a-zA-Z]。

答案 2 :(得分:0)

答案 3 :(得分:0)

bool valid =  
    Regex.IsMatch(password, @"\w+")// add additional allowable characters here
    && Regex.IsMatch(password, @"\d")
    && Regex.IsMatch(password, @"\p{Lu}");