想找一个比较好的正则表达式去处理一下汉字当中的重复字符串,例如:"我不快乐我不快乐"。处理后变成:"我不快乐"即可。。帮托各位大神帮帮忙哈。。

解决方案 »

  1.   

                string str = "我不快乐我不快乐";
                Regex reg = new Regex(@"(([\u4e00-\u9fa5])[\u4e00-\u9fa5]*?)\2");
                while (str != (str = reg.Replace(str, "$1"))) ;
                Console.WriteLine(str);
      

  2.   

    把正则改成这样:"(?s)(([\u4e00-\u9fa5]+).*?)\2"
      

  3.   

    把正则改成这样:"(?s)(([\u4e00-\u9fa5]+).*?)\2"
      

  4.   

    OH~~It's really  mad sexy cool! 感谢各位大拿!!就是小弟不太理解其中的道理,先谢谢各位了,随后找各位探讨希望,各位大拿能慷慨赐教呀。。