there is probably a better way, but try to permute \d, [A-Z], and [a-z]:\d.*[a-z].*[A-Z]|\d.*[A-Z].*[a-z]|[a-z].*\d.*[A-Z]|[a-z].*[A-Z].*\d|[A-Z].*[a-z].*\d||[A-Z].*\d.*[a-z]or(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*for examplestring[] slist = {"a","9","Z","a9","9Z","aA","a9Z","a**Z*9","[',9/?Z%&*z]"}; Regex re = new Regex(@"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"); foreach (string s in slist) { Console.WriteLine("{0} matches? {1}", s, re.IsMatch(s)); }
Regex re = new Regex(@"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*");
foreach (string s in slist)
{
Console.WriteLine("{0} matches? {1}", s, re.IsMatch(s));
}