例如: abcad efbgh
匹配后的结果应该是: ab
因为只有ab在原字符串中有重复出现
请指导...

解决方案 »

  1.   

    (\w)(?=.*?\1)string str="abcad efbgh";
    string result=string.Empty;
    Regex reg=new Regex(@"(\w)(?=.*?\1)");
    foreach(Match m in reg.Matchs(str))
    {
     result+=m.Value;
    }
      

  2.   

    很感谢 min_jie
    你给的答案基本上已经满足了我的要求.
    但是这种情况: abdcaaf
    用你的表达式好像会出来两个:
    a
    a
    也就是说a被匹配了两次
    能不能只出来一次呢?还有, ab cdefg ab abgf
    能不能把其中的ab匹配出来呢?
      

  3.   

    private string GetRepeatString(string str)
    {
     string result=string.Empty;
     if(str.Length==0) return result;
     while(str.Length>0)
     {
      string temp=str[0].ToString();
      int len=str.Length;
      str=str.Replace(temp,"");
      if(len-str.Length>1) result+=temp;
     }
     return result;
    }