我是新手,再次求助一个正则表达式,如下:  
验证输入:6-14个字符,大小写字母和数字,但不能全由字母或数字构成,必须是字母和数字的组合  
 
那位大哥能帮帮我,非常感谢!

解决方案 »

  1.   

    --可以使用两个正则表达式来进行验证.a."\w{6,14}"  验证字符的长度在6-14之间b."\w+\d*[a-z]*\w+"  验证字母和数字的组合.
      

  2.   

    不能用\w,它等价于[A-Za-z0-9_],包括下划线
      

  3.   

    try (in .NET)^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{6,14}$
      

  4.   

    匹配([A-Za-z]|\d){6,14}
    但不匹配:[A-Za-z]{6,14}和\d{6,14}
      

  5.   

    测试了saucer(思归)的结果,是正确的。能否讲一下问号的使用呢,对它一直比较不敢使用。
      

  6.   

    http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/cpgenref/html/cpconGroupingConstructs.asp
      

  7.   

    感谢大家的热心,测试了saucer(思归)的结果:当出现 12345abc 这种情况时通不过,能否在^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{6,14}$ 的基础上加以修改,以适应所有情况呢?
      

  8.   

    是了,我的测试结果12345abc能通过呀
      

  9.   

    我这样用时:
    Regex r;   
    r = new Regex("^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{6,14}$");系统会提示:Regist.aspx.cs(108): 无法识别的转义序列
      

  10.   

    噢。我这样用的
    System.Text.RegularExpressions.Regex.IsMatch(input,pattern);
      

  11.   

    to:diffmaker(浮尘) 
    就是这样写:
    System.Text.RegularExpressions.Regex.IsMatch("12345asdf","^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{6,14}$");也还是会出现同样错误。
      

  12.   

    里面有反斜线,所以不能那样写。这样写
    Regex.IsMatch("12345asdf",@"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z0-9]{6,14}$")
    在前面加一@
      

  13.   

    表达式:
    (?![A-Za-z]{6,14}\b)(?!\d{6,14}\b)[A-Za-z\d]{6,14}\b测试页面:(推荐)
    http://www.regexlab.com/zh/workshop.asp?pat=%28%3F%21%5BA-Za-z%5D%7B6%2C14%7D%5Cb%29%28%3F%21%5Cd%7B6%2C14%7D%5Cb%29%5BA-Za-z%5Cd%5D%7B6%2C14%7D%5Cb&txt=a1%20%20%3C-%20no%0D%0A%0D%0A12345abc%20%20%3C-%20yes%0D%0A%0D%0A12345678%20%20%3C-%20no%0D%0A%0D%0Aabcdefgh%20%20%3C-%20no%0D%0A%0D%0A1234567890123a%20%20%3C-%20yes&dlt=0思路:
    采用正向预搜索功能(也叫正向零宽度断言)参考:
    http://www.regexlab.com/zh/regref.htm