例如 string a="6565start1234566endtrtert34startrereterend44645"
输入起始字符和结束字符 start 和 end
最后得到一个数组arr
arr[0]=” 1234566”
arr[1]=” rereter”

解决方案 »

  1.   

    是个是字符串处理的吧,Replace的吧;
      

  2.   

    Regex reg = new Regex(@"start(?<num>\d+)end");
    reg.Match(s).Groups["num"].Value;
      

  3.   

    好像不是repalce的,总之是一个字符串处理的,以某字符分断并存为数组我几过好像在查询用得比较多,好像是多词查词,
      

  4.   


    string a="6565start1234566endtrtert34startrereterend44645"
    貌似有点麻烦,分数太少,不值
      

  5.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;namespace JQuerWeb
    {
        public class SubStringFromStartEnd
        {
            public SubStringFromStartEnd()
            { }        public IList<String> GetSubStringsBetweenStartAndEnd(String a)
            {
                int startIndex, endIndex;
                IList<string> lists = new List<string>();
                while (true)
                {
                    startIndex = -1;
                    endIndex = -1;
                    startIndex = a.IndexOf("start");
                    endIndex = a.IndexOf("end");
                    if (startIndex >= endIndex)
                    {
                        break;
                    }
                    string result = a.Substring(startIndex + 5, endIndex - startIndex - 5);
                    lists.Add(result);
                    a = a.Substring(endIndex + 3);
                }
                return lists;
            }
        }
    }string a = "6565start1234566endtrtert34startrereterend44645";
                SubStringFromStartEnd subStringFromStartEnd = new SubStringFromStartEnd();
              IList<String> lists=  subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
              foreach (String item in lists)
              {
                  Response.Write(item+"<br/>");
              }
      

  6.   

    试试2楼的正则吧。就是匹配字符串中start开头end结尾中的字符串
      

  7.   

    给出一段测试的代码: [TestMethod]
            public void TestGetSubStringsBetweenStartAndEnd()
            {
                string a = "6565start1234566endtrtert34startrereterend44645";
                SubStringFromStartEnd subStringFromStartEnd = new SubStringFromStartEnd();
                IList<String> lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.IsTrue(lists.Count == 2);
                Assert.AreEqual("1234566", lists[0]);
                Assert.AreEqual("rereter", lists[1]);
                a = "start123end";
                lists=subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.IsTrue(lists.Count == 1);
                Assert.AreEqual("123", lists[0]);
                a = "startend";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "start123";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "start";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "123end";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "end";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "endstart";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "end123start";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
                a = "end123start456";
                lists = subStringFromStartEnd.GetSubStringsBetweenStartAndEnd(a);
                Assert.AreEqual(0, lists.Count);
            }all pass
      

  8.   

    不好意思,上面的代码有点错误,现在给你另一份通过测试的代码: public IList<String> GetSubStringsBetweenStartAndEnd(String a)
            {
                int startIndex, endIndex;
                IList<string> lists = new List<string>();
                while (true)
                {
                    startIndex = -1;
                    endIndex = -1;
                    startIndex = a.IndexOf("start");
                    endIndex = a.IndexOf("end");
                    if ((startIndex >= endIndex) || (startIndex==-1 && endIndex>=0))
                    {
                        break;
                    }
                    string result = a.Substring(startIndex + 5, endIndex - startIndex - 5);
                    if (result != null && result.Length > 0)
                    {
                        lists.Add(result);
                    }
                    a = a.Substring(endIndex + 3);
                }
                return lists;
            }2楼的方法是正则,楼主可以尝试一下,如果行的话(我没测试2楼的正则),可以考虑,代码写的也很简单,清爽。
      

  9.   

    string a="6565start1234566endtrtert34startrereterend44645"
    string[] Array=a.split(new string[]{'start','end'});
    试试、、、
      

  10.   


    // 还是帮你回答一下吧
    例如 string a="6565start1234566endtrtert34startrereterend44645"
    string b = a.Replace("start","#");
    string[] c = a.split(new char[]{'#'});
    ArrayList list = new ArrayList();
    // 在这里判断c中的每项是否包含end
    foreach(string tmp in c)
    {
       int endIndex = tmp.IndexOf("end");
       if(endIndex > 0)
       {
          // list是ArrayList,请在循环外自己定义
          list.add(tmp.substring(0,endIndex); 
       }
    }
    /*好家伙,累死我了....*/
      

  11.   

    // 还是帮你回答一下吧
    例如 string a="6565start1234566endtrtert34startrereterend44645"
    string b = a.Replace("start","#");
    string[] c = a.split(new char[]{'#'});
    ArrayList list = new ArrayList();
    // 在这里判断c中的每项是否包含end
    foreach(string tmp in c)
    {
       int endIndex = tmp.IndexOf("end");
       if(endIndex > 0)
       {
          // list是ArrayList,请在循环外自己定义
          list.add(tmp.substring(0,endIndex); 
       }
    }
    /*好家伙,累死我了....*/
      

  12.   


    // 刚才有一句废话,现在注释掉了
    例如 string a="6565start1234566endtrtert34startrereterend44645"
    //string b = a.Replace("start","#");
    string[] c = a.split(new string[]{"start"});
    ArrayList list = new ArrayList();
    // 在这里判断c中的每项是否包含end
    foreach(string tmp in c)
    {
       int endIndex = tmp.IndexOf("end");
       if(endIndex > 0)
       {
          // list是ArrayList,请在循环外自己定义
          list.add(tmp.substring(0,endIndex); 
       }
    }
    /*好家伙,累死我了....*/
      

  13.   

    先用Replace("start")替换成单个字符(&) 然后结合Split分割函数进行循环分割。