RT.
Example:   string str = "8912341253789";
要求利用Regex去除 str 中重复的数字 最好附有代码说明,谢谢!!!

解决方案 »

  1.   

    string result = Regex.Replace("8912341253789", @"(?s)(\d)(?=\d*\1)", "");
                Console.WriteLine(result);
                Console.Read();
      

  2.   

    function dN(num, len){
        var d = 0;
        return num.toString().replace(/-?0?\.0*/, "").replace(/\d/g, function(v, i, s){
            return i-d >= len ? '' : (s.indexOf(v) < i ? (d++,'') : v);
        });
    }
    http://topic.csdn.net/u/20090520/10/8709aca9-40f5-40ef-9b41-6886ee9223e2.html自己看看吧
      

  3.   

    (?s) 开启单行模式
    (\d) 匹配数字 并捕获在第一组
    (?=\d*\1) 断言, 表示后面内容将是任意一个数字加上第一组所捕获的数字的内容 
      

  4.   

    why not use linq ?
    void Main()
    {
    string str = "8912341253789";
    str=new string(str.ToCharArray().Distinct().ToArray());
    Console.WriteLine(str); //89123457}
      

  5.   

    我这里就有一个解决方案,有点儿没明白~string str = "8912341253789";Regex reg = new Regex(@"((\d)\d*?)\2");while (str != (str = reg.Replace(str, "$1"))) { }richTextBox2.Text = str;/*--------输出--------89123457*/顺便说一下,我要的不是答案,是解析过程……谢谢了。
      

  6.   

    其他方法,例如LINQ,我可以解决这个问题……
      

  7.   

    void Main()
    {

    string str = "8912341253789";Regex reg = new Regex(@"((\d)\d*?)\2");while (str != (str = reg.Replace(str, "$1"))) { Console.WriteLine(str);} Console.WriteLine("Result:"+str);/*--------输出--------891234125379
    89123412537
    8912342537
    891234537
    89123457
    Result:89123457
    */}
    //代码的逻辑是: 先从第一个8开始 找到第2个8时 就替换掉
    再从第2个9开始 找到9时就替换掉直到最后str= ( str = reg.Replace(str, "$1"))
    跳出循环
      

  8.   

    Regex中的 \2 是不是引用的((\d)\d*?) 呢?
    str = reg.Replace(str, "$1") 中的 $1表示什么呢?系统如何认识 $1?
      

  9.   


    void Main()
    {

    string str = "8912341253789";Regex reg = new Regex(@"(\d)(\d*)\1");while (str != (str = reg.Replace(str, "$1$2"))) {} Console.WriteLine("Result:"+str);
    }以上边代码为例:
    \1 即$1 指  8
    $2指 :  9123412537
      

  10.   

    记得primer上面有,但是忘记了
      

  11.   

    看来你真的是忘记了……C# Primer上面没有.