用asp.neg
有一个字符串 b="fdfd555rer33rereriyhyhy55652556gfgfgf"(字符串中的数字长度不固定,数字也不固定)
让这个字符串变成  fdfd555/rer33/rereriyhyhy55652556/gfgfgf
请高手出马谢谢!

解决方案 »

  1.   

    string s = "fdfd555rer33rereriyhyhy55652556gfgfgf";
    Response.Write(Regex.Replace(s, @"(?<=\d+)(?=\D)", "/"));
      

  2.   


    void Main()
    {
    string b="fdfd555rer33rereriyhyhy55652556gfgfgf";
    b=Regex.Replace(b,"(\\d+)","$1/");
    Console.WriteLine(b);
    //fdfd555/rer33/rereriyhyhy55652556/gfgfgf
    }
      

  3.   

    开了两个一模一样的帖子。郁闷@(?<=\d+)(?=\D)那位高手能帮我详细解释一下这个啊!谢谢!
      

  4.   

    (?<=\d+)表示匹配的位置前面是数字,(?=\D)表示匹配的位置后面不能是数字。
    fdfd555rer33......
    匹配到
    fdfd555|rer33.....
    |表示匹配的位置,把这个长度为0的字符替换成/
      

  5.   

    4楼兔子当是对的:using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.IO;
    namespace sxLdfang
    {
        class Program
        {
            static void Main(string[] args)
            {
                string html = @"fdfd555rer33rereriyhyhy55652556gfgfgf55";
                string pattern = @"\d+";
                string result = Regex.Replace(html, pattern, @"$0/");
                Console.WriteLine(result);
                Console.ReadKey();
            }
        }
    }
    运行结果:
    fdfd555/rer33/rereriyhyhy55652556/gfgfgf55/
      

  6.   

    大凡数字后面就加一个/么? 还是好做的
    思路就是,
    0、设定一个标记位,比如:bool IsNumber = false;
    1、逐个检查字符串中的每一个字符,遇到数字就将标记位改变,否则就将其还原;
    比如:if(char <=='9' && char >= '0') IsNumber = true; else IsNumber = false;
    2、如果标记为指示前面的字符为数字,而当前字符不是数字,则插入一个“/”;
    3、直到检查完整个字符串。
    其中一种伪代码大概如下:
    string CHECK(string s)
    {
    string r;
    char tmp;
    bool IsNumber = false;
    for(int i=0;i<s.length;i++)
    {
      t = s[i];
      if(t <='9' && t >= '0' >)
      {
        r += t;
        IsNumber = true;
      }
      else
      {
        if(IsNumber)
        {
          r += "/"+t;
          IsNumber = false;
        }
        else
        {
          r+= t;
          IsNumber = false;
        }
      }

    if(IsNumber) r+="/";