使用String.Split(char[], int)
重载 (http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx)。第二个参数将限制要返回的子字符串的数量。如果你知道你的字符串总是至少有 1 个等号(键/值对),那么将第二个参数设置为 2。
string x = "key1=value1 http://www.example.com?a=1;key2=value2 http://www.example.com?a=2;";
char[] equal = new char[1] { '=' };
char[] semi = new char[1] { ';' };
string[] list = x.Split(semi, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in list)
{
string[] kvp = s.Split(equal, 2);
Console.WriteLine("Key: {0}, Value: {1}", kvp[0], kvp[1]);
}
- 结果:
Key: key1, Value: value1 http://www.example.com?a=1
Key: key2, Value: value2 http://www.example.com?a=2