c# 截取从某个字符开始到某个字符结束

Input:stone,Output:gold,Name:abc,Age:12

我想截取
从 Input: 到 第一个, 之间的字符串
从 Output: 到 第一个, 之间的字符串
从 Name: 到 第一个, 之间的字符串
从 Age: 到 第一个, 之间的字符串

string 类型对象的 Split() 方法就可以了。

 

先按照逗号截取,各部分再按照冒号截取。

 

参考:

string value = "Input:stone,Output:gold,Name:abc,Age:12";
string[] results = value.Split(',');
string input = results[0].Split(':')[1]; 
string output = results[1].Split(':')[1];
string name = results[2].Split(':')[1]; 
string age = results[3].Split(':')[1];

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-20

正则式 啊

using System.Text.RegularExpressions;


Regex.Match("Input:stone,Output:gold,Name:abc,Age:12","[^:]+:[^,]*[,\0]").Group[2].Value

追问

除了 正则还有其他方法吗

追答string sss="Input:stone,Output:gold,Name:abc,Age:12";
int index=0;int index2=1;
while (index2>0) {
    index=sss.IndexOf(':',index2)+1;
    index2=sss.IndexOf(',',index);
    if (index2<0) {
        Console.WriteLine(sss.Substring(index));
        break;
    }else{
        Console.WriteLine(sss.Substring(index,index2-index));
    }
}

不用正则,把每一个你要的在控制台里输出。

本回答被提问者采纳
第2个回答  2015-03-19
string aa = "nput:stone,Output:gold,Name:abc,Age:12";
List<string> list=new List<string>(aa.Split(new char[]{':',','}));
foreach (string str in list)
{
}
相似回答