写一条正则表达式,既至少包含两个数字以上,两个字母以上,密码长度至少要八个。

解决方案 »

  1.   

    我感觉正则有点难度
    比如下面的很难处理   1a1a^^^^    a11a>>>>
    数字不再一起,,字母也不再一起的。
    最好可以再验证一下先将字符串排序
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Text.RegularExpressions;namespace CSharpTest
    {
        class Program
        {        static void Main(string[] args)
            {
                string[] str = new string[] { "aa11aaaa", "a11!!!!!a!!", "aa1%%%%%%%%a","aasssssaaaaa" };
                Regex re = new Regex(@"^([^0-9]*[0-9]{2,}[a-z]{2,})${8,}");
                foreach (string s in str)
                {
                    char[] ch = s.ToCharArray();
                    Array.Sort(ch);
                    StringBuilder sb = new StringBuilder();
                    sb.Append(ch);
                    string ss = sb.ToString();
                    Console.Write("{0}  ",s);
                    if (re.Match(ss).Success)
                        Console.WriteLine( "ok");
                    else
                        Console.WriteLine("no");
                }
               
            }
        }
    }aa11aaaa  ok
    a11!!!!!a!!  ok
    aa1%%%%%%%%a  no
    aasssssaaaaa  no
    请按任意键继续. . .