比如我要查一个手机号码中的最后四位是不是aabb或者abab或者aaab的形式,该如何写表达式?
如果谁厉害点帮我1234、3456等这样递增的该如何写?

解决方案 »

  1.   

    aabb (\d)\1(\d)\2$
    abab (\d\d)\1$
    aaab (\d)\1\1\d$
      

  2.   


    //aabb,允许aaaa
    (\d)\1(\d)\2$
    //abab,允许aaaa
    (\d)(\d)\1\2$
    //aaab,允许aaaa
    (\d)\1\1\d$
    //同时允许
    (?:(\d)\1(\d)\2|(\d)(\d)\3\4|(\d)\5\5\d)$//以上如果不允许aaaa,第二个(\d)改为((?!\1)\d)
    //如aabb,不允许aaaa
    (\d)\1((?!\1)\d)\2$//递增如果只是4位正则勉强可以做到,基本上类似于穷举了,意义不大,此为不允许7890
    (0(?=1)|1(?=2)|2(?=3)|3(?=4|$)|4(?=5|$)|5(?=6|$)|6(?=7|$)|7(?=8|$)|8(?=9|$)|9(?=0|$)){4}$
    //如果允许7890
    (0(?=1|$)|1(?=2)|2(?=3)|3(?=4|$)|4(?=5|$)|5(?=6|$)|6(?=7|$)|7(?=8|$)|8(?=9|$)|9(?=0|$)){4}$
      

  3.   

    /^\d{7}(\d)\1(\d)\2$/ //aabb
    /^\d{7}(\d)(\d)\1\2$/   //abab
    /^\d{7}(\d)\1\1\d$/ //aaab
    后2个不会写.