求一个正则表达式,去掉汉字字符串中的重复项

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

7 个解决方案

#1


正则问题找过客,到过客的博客问问: 过客的博客

#2


额,嚒人理。。。

#3


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

#4


引用 3 楼 huangwenquan123 的回复:
C# code
            string str = "我不快乐我不快乐";
            Regex reg = new Regex(@"(([\u4e00-\u9fa5])[\u4e00-\u9fa5]*?)\2");
            while (str != (str = reg.Replace(str, "$1"))) ;
            C……

如果只是:"我不快乐我不快乐"这样,那么,这个可以用

#5


把正则改成这样:

"(?s)(([\u4e00-\u9fa5]+).*?)\2"

#6


把正则改成这样:

"(?s)(([\u4e00-\u9fa5]+).*?)\2"

#7


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

#1


正则问题找过客,到过客的博客问问: 过客的博客

#2


额,嚒人理。。。

#3


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

#4


引用 3 楼 huangwenquan123 的回复:
C# code
            string str = "我不快乐我不快乐";
            Regex reg = new Regex(@"(([\u4e00-\u9fa5])[\u4e00-\u9fa5]*?)\2");
            while (str != (str = reg.Replace(str, "$1"))) ;
            C……

如果只是:"我不快乐我不快乐"这样,那么,这个可以用

#5


把正则改成这样:

"(?s)(([\u4e00-\u9fa5]+).*?)\2"

#6


把正则改成这样:

"(?s)(([\u4e00-\u9fa5]+).*?)\2"

#7


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