使用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
當你說「逗號」,我想你的意思是「分號」。 – Jodrell
''我在兩個鍵/值周圍加了雙引號,以幫助保持分離「'所以雙引號通常不在那裏? –
http://regexpal.com/嘗試使用這個工具與您的上述值。然後你可以玩正則表達式,直到它給你所需的值。 – user1836293