1. 求一正则表达式匹配:
AABBAB
A和B都是数字如: 112212, 335535, 883383... ...2. 在上面的AABBAB中, 再加条件A>B则 112212, 335535, 883383中,只有883383满足条件3. 再进一步, A>B,且为递增则 112212, 335535, 883383中都不满足条件,满足的字串应为 554454, 887387关于递增,求AABBCC的表达式,如: 112233, 223344, 667788

解决方案 »

  1.   

    那个什么,正则表达式里面有逻辑运算符嘛?我只能告诉你第一个的表达式:(\d{1})\1{1}(\d{1})\2{1}\1{1}\2{1}
    或者简单些:
    (\d)\1(\d)\2\1\2
      

  2.   

    补充一点,正则表达式是没办法做到你的2,3两个要求的。
    除非使用正则表达式匹配出字符以后,再在正则表达式外面(比如java的代码中)对取得的字符进行逻辑判断。
    直接使用正则表达式,不是没办法做到,是会非常非常麻烦,建议你不要考虑。ps:当然了,如果你想变态一点,我可以给你提示一下第三题的正则表达式:
    AABBCC递增:
    0{2}1{2}2{2}|1{2}2{2}3{2}|2{2}3{2}4{2}|...
      

  3.   

    是的,我也觉得很烦... ...不知道有没有解...能否简单说明一下(\d{1})\1{1}(\d{1})\2{1}\1{1}\2{1} 

    (\d)\1(\d)\2\1\2 的意思吗?谢谢.
      

  4.   


    是的,我也觉得很烦... ...不知道有没有解... 能否简单说明一下 (\d{1})\1{1}(\d{1})\2{1}\1{1}\2{1} 
    和 
    (\d)\1(\d)\2\1\2 的意思吗?谢谢.
      

  5.   

    这是运用了捕获组的方法。我拿第二个表达式说明一下首先\d匹配一个数字
    然后\1表示整个匹配表达式中第一个括号包含的部分所匹配到的同一个数字,即前面第一个\d匹配到的数字
    第二个\d匹配一个数字
    \2表示整个匹配表达式中第二个括号包含的部分所匹配到的同一个数字,即前面第二个\d匹配到的数字
    后面的\1和\2的含义与前面相同。也就是说,只有满足aabbab这样的字符串才可以被这个表达式匹配到。