例如 string a="6565start1234566endtrtert34startrereterend44645"
输入起始字符和结束字符 start 和 end
最后得到一个数组arr
arr[0]=” 1234566”
arr[1]=” rereter”
输入起始字符和结束字符 start 和 end
最后得到一个数组arr
arr[0]=” 1234566”
arr[1]=” rereter”
调试欢乐多
reg.Match(s).Groups["num"].Value;
string a="6565start1234566endtrtert34startrereterend44645"
貌似有点麻烦,分数太少,不值
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/>");
}
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
{
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楼的正则),可以考虑,代码写的也很简单,清爽。
string[] Array=a.split(new string[]{'start','end'});
试试、、、
// 还是帮你回答一下吧
例如 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);
}
}
/*好家伙,累死我了....*/
例如 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);
}
}
/*好家伙,累死我了....*/
// 刚才有一句废话,现在注释掉了
例如 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);
}
}
/*好家伙,累死我了....*/