有一些数据   比如说1.most of the people love me.此处省略一千字.lfjdkjfksdsdjklfsdfjkl
怎么样截取字符得到结果:此处省略一千字
前提:结果前面和后面的字符都可能有变动,“此处省略一千字”也有可能是有变动的   不变的是“此处”和“lfjd”   
想了好久没想到   求高人指点 

解决方案 »

  1.   

    string s="";
    int beginIndex=s.IndexOf("此处");
    int endIndex=s.IndexOf("lfjd");
    string result=s.Substring(beginIndex,endIndex-beginIndex);
      

  2.   


    该楼正解。。但是应该在string result=s.Substring(beginIndex,endIndex-beginIndex);此行代码改为
    string result=s.Substring(beginIndex,endIndex-beginIndex-1);方能得到正确结果
      

  3.   

    因为楼主说“不变的是“此处”和“lfjd””,注意后面那个不是指“.lfjd”,所以我那个没减一是对的。可能是楼主叙述有误吧,他指的应该是前面有个点的lfjd。
      

  4.   

    只要有固定的字符,先找到这些字符的index,然后计算加减
      

  5.   


    int endIndex=s.IndexOf("lfjd", beginIndex);其实还有其他情况,这里的意思是避免"lfjd"在"次处"的前面出现,那样endIndex-beginIndex就小于0了,还有其他情况
      

  6.   

    这种情况为什么不用正则呢?string str = "有一些数据 比如说1.most of the people love me.此处此处lfj省略一千字.lfjlfjdkjfksdsdjklfsdfjkl";  //这里有重复
    Console.WriteLine(str);
    //取第一个“此处”到最后一个“lfj”之间的内容
    string result = new Regex(@"(?<=此处).+(?=lfj)").Match(str).Value;
    Console.WriteLine(result);
    Console.ReadLine(); 如果要取第一个“此处”到第一个“lfj”之间的内容,就加个问号
    string result = new Regex(@"(?<=此处).+?(?=lfj)").Match(str).Value;