求一正则表达式,至少6位,其中必须包含一个大写字母和一个数字

解决方案 »

  1.   

    string Regextest="[\s\S]*[A-Z]+[\s\S]*\d+[\s\S]*";提示:无法识别的转义序列
      

  2.   

    要用一个正则表达出整个条件真的很刁难……分开三个正则就简单多了:
    .{6,}
    [A-Z]
    [0-9]要写在一个正则里面的话,我只想到穷举:A0xxxx -> [A-Z][0-9].{4,}
    Ax0xxx -> [A-Z].[0-9].{3,}
    Axx0xx -> [A-Z].{2}[0-9].{2,}
    Axxx0x -> [A-Z].{3}[0-9].+
    Axxxx0 -> [A-Z].{4,}[0-9].*
    -------------------------------
    xA0xxx -> .[A-Z][0-9].{3,}
    ...
    以此类推,推完不要不记得把数字和字母反过来再从头推一次,然后用 | 把所有正则连起来哈哈
      

  3.   

    string Regextest=@"[\s\S]*[A-Z]+[\s\S]*\d+[\s\S]*";
      

  4.   

    vivianfdlpw() 谢谢,通过测试了,能正确检测
      

  5.   

    (?=\b.{6,}\b).*(([A-Z].*[0-9])|([0-9].*[A-Z])).*try {
    if (Regex.IsMatch(SubjectString, "(?=\\b.{6,}\\b).*(([A-Z].*[0-9])|([0-9].*[A-Z])).*")) {

    } else {


    } catch (ArgumentException ex) {
    // Syntax error in the regular expression
    }
      

  6.   

    vivianfdlpw()的无法匹配这个8efeFa
      

  7.   

    string Regextest=@"([\s\S]*[A-Z]+[\s\S]*\d+[\s\S]*)|([\s\S]*\d+[\s\S]*[A-Z]+[\s\S]*)";
      

  8.   

    rcom10002(KNIGHTRCOM) 的有点小问题,这样就可以了
    string Regextest="(?=\\b.{6,}\\b).*(([A-Z].*[0-9])|([0-9].*[A-Z])).*";
      

  9.   

    vivianfdlpw() 也OK了,谢谢各位了,不过正则看来正的好麻烦,不知大家如何练的这么如火纯青的啊
      

  10.   

    晕了,算了,你把我那个复制了一遍然后说我的有问题,我不知道vivianfdlpw()的怎么才能保证六位,谢谢了
      

  11.   

    (?=   ) 零宽度正预测先行断言。仅当子表达式在此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 
    (?!   ) 零宽度负预测先行断言。仅当子表达式不在此位置的右侧匹配时才继续匹配。例如,\b(?!un)\w+\b 与不以 un 开头的单词匹配。 
    (?<=   ) 零宽度正回顾后发断言。仅当子表达式在此位置的左侧匹配时才继续匹配。例如,(?<=19)99 与跟在 19 后面的 99 的实例匹配。此构造不会回溯。 
    (?<!   ) 零宽度负回顾后发断言。仅当子表达式不在此位置的左侧匹配时才继续匹配。 
    (?>   ) 非回溯子表达式(也称为“贪婪”子表达式)。该子表达式仅完全匹配一次,然后就不会逐段参与回溯了。(也就是说,该子表达式仅与可由该子表达式单独匹配的字符串匹配。) 看得我头晕……不过总算学到一点东西了
      

  12.   

    vivianfdlpw() 还是有问题,“111A”可以通过验证
      

  13.   

    sorry啊rcom10002(KNIGHTRCOM),可能是我我把你的复制到.NET平台时字符有的会自动转换,拷到里面有的就不一样了