正则表达式.NET

时间:2013-11-03 21:40:43

标签: .net regex string expression

我需要一个必须在字符串上匹配的参数的正则表达式。

这里是......

  1. 该字符串存在于最少8个最多20个字符之外。

  2. 此字符串的这些字符可能是alfabet或特殊字符的字符 - 换句话说......除了空白之外的所有字符

  3. 在完整字符串中必须至少包含1个数字。

  4. 字符串不能以数字或下划线开头

  5. 字符串的最后两个字符必须相同,但如果最后这些字符是大写字母或非资本字符(不区分大小写),那么它很重要

  6. 必须全部匹配:

    +234567899
    a_1de*Gg
    xy1Me*__
    !41deF_hij2lMnopq3ss
    C234567890123$^67800
    *5555555
    sDF564zer""
    !!!!!!!!!4!!!!!!!!!!
    abcdefghijklmnopq9ss
    

    可能不匹配:

    不能少于8个或更多20个字符:

    a_1+Eff
    B41def_hIJ2lmnopq3stt
    

    不能包含空格:

    A_4 e*gg
    b41def_Hij2l nopq3ss
    

    无法以数字或下划线开头: __1 + Eff为 841DEf_hij2lmnopq3stt

    不能以2个不同的字符结尾:

    a_1+eFg
    b41DEf_hij2lmnopq3st
    

    不能没有字符串中的数字:

    abCDefghijklmnopqrss
    abcdef+++dF
    !!!!!!!!!!!!!!!!!!!!
    ------------------------------------------------------
    

    这就是我到目前为止......但是我真的在这个...... 如果你完全不知道答案,那不是问题...... 我只是想朝着正确的方向前进

    ([^0-9_])(?=.*\d)(\S{8,20})(?i:[\S])\1
    

2 个答案:

答案 0 :(得分:0)

如果您可以使用多个正则表达式,请尝试以下操作:

\S{8,20}

[^_0-9].*\d.*

.*(?i)(.)\1

如果必须是1,请使用:

^[^_\s\d](?=.*\d)\S{5,17}(?i)(\S)\1$

(我必须让Casmir帮助我找到最后一个错误。)

编辑:

这是

  1. 任何一个字符,而不是下划线,空格或数字。

  2. (必须跟随任何字符,然后是数字)

  3. 然后是五到十七个非空白字符

  4. 然后(从现在开始不区分大小写),一个空白字符,后跟相同的字符

答案 1 :(得分:0)

你可以试试这个:

^[^\s\d_](?=.*\d)\S{5,17}(?i)(\S)\1$