我想匹配连续重复出现(次数不定)的某段字符串,如匹配重复出现的"abc",则
string input = "bbbabcabcabcaaaa"; // 通过
string input = "abcdabcabd"; // 失败
请问正则表达式该如何写?

解决方案 »

  1.   

    diandian82(点点)的答案有问题,kkbspod(我被可乐淹死了) 的答案能加以解释么?不知如何使用这个式子?直接将其作为正则匹配式结果不对
      

  2.   

    匹配为.+ 条件是在它后面还跟着本身一样的字符串。比如bb就可以判断为字符串b出现2次
    aaaa判断为aa出现2次
    abcdabcabd匹配结果是 b,2次;abc,2次;aa,一次;a,一次;
    abcdabcabd不匹配。
      

  3.   

    哦,我理解你的意思了,不过如果我想匹配重复出现的字符串必须是指定的,那该怎么办呢?
    比如abcdabcd是重复出现的,但如果指定匹配到的重复字符串是abc,则仍然匹配失败
      

  4.   

    多谢大家的帮助,但是请原谅我的表达能力,我说指定的重复字符串是指:
    比如指定重复字符串必须为三个小写字母,则abcabc,abdabd都pass
    但abcabd就不能pass了,不知我说明白了没有多谢!
      

  5.   

    还是不明白你要说什么?
    (abc){2,}不行吗?
      

  6.   

    当然不行,(abc){2,}不能匹配abdabd,请注意我的匹配条件是连续三个小写字母的重复字符串,而不是简单的已确定的abc
    但请注意abcabd是不能pass的
      

  7.   

    To:你好死脑筋哦   ([a-z]{3}){2,}
    大哥,认真一点好不,要只是我死脑筋就好了。
    你的表达式会让abcabd这样的字符串Pass,而我的要求是对这样的字符串不能Pass的,只能让abcabc,或abdabdabd这样的字符串Pass
      

  8.   

    To:这样 ([a-z]{3})\1
    ok,这回能够得到我想要的结果了  :)
    最后,请解释一下这里\1的用法,我立马给分