string str = "dfgs4aer#@";要求,如果字符串中有int型的数字,即将它+1,其它字符不变,就算是遇到两位数的,也是+1谢谢

解决方案 »

  1.   

                string reg = @"[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?";            string str = "dfgs4ae12r#@333";
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(reg);
                MatchCollection matches = regex.Matches(str);可以找到 4, 12, 333
      

  2.   

    string str = "dfgs4aer#@";
    Regex r = new Regex("[0-9]");
    //匹配数字字符
    //r.IsMatch(str)结果:true
      

  3.   


    string str = "dfgs4aer#@";
                Regex regex = new Regex(str);
                MatchCollection matches = regex.Matches(str);
                int num = 0;
                for (int i = 0; i < matches.Count; i++)
                {
                    Regex r = new Regex("[0-9]");
                    if (r.IsMatch(str))
                    {
                        num = int.Parse(matches[i].ToString()) + 1;
                    }
                }
                MessageBox.Show(num+"");
      

  4.   

    这个有错LZstring reg = @"[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?";
                string str = "dfgs4aer#@";
                Regex regex = new Regex(reg);
                MatchCollection matches = regex.Matches(str);
                int num = 0;
                for (int i = 0; i < matches.Count; i++)
                {
                    num = int.Parse(matches[i].ToString()) + 1;
                    
                    str = str.Replace(matches[i].Value, num.ToString());
                }
                MessageBox.Show(str);//这个才是对的
      

  5.   

    Regex reg = new Regex(@"\d{1,}");//int型的話,這樣匹配就差不多了吧
      

  6.   

    参考一下吧,呵呵
                string str = "dfgs4a453er#@";
                Regex reg = new Regex(@"\d{1,}");
                foreach (Match m in reg.Matches(str))
                {
                    str = str.Remove(m.Index, m.Groups[0].Value.Length).Insert(m.Index, (Int32.Parse(m.Groups[0].Value) + 1).ToString());
                }