Объединить две группы регулярных выражений в объект пары ключ / значение?
Допустим, у меня есть следующая строка
Type="Category" Position="Top" Child="3" ABC="XYZ"....
И 2 группы регулярных выражений: ключ и значение
Key: "Type", "Position", "Child",...
Value: "Category", "Top", "3",...
Как мы можем объединить эти две захваченные группы в объект пары ключ / значение, такой как Hashtable?
Dictionary["Type"] = "Category";
Dictionary["Position"] = "Top";
Dictionary["Child"] = "3";
...
1 ответ
Решение
Мое предложение:
System.Collections.Generic.Dictionary<string, string> hashTable = new System.Collections.Generic.Dictionary<string, string>();
string myString = "Type=\"Category\" Position=\"Top\" Child=\"3\"";
string pattern = @"([A-Za-z0-9]+)(\s*)(=)(\s*)("")([^""]*)("")";
System.Text.RegularExpressions.MatchCollection matches = System.Text.RegularExpressions.Regex.Matches(myString, pattern);
foreach (System.Text.RegularExpressions.Match m in matches)
{
string key = m.Groups[1].Value; // ([A-Za-z0-9]+)
string value = m.Groups[6].Value; // ([^""]*)
hashTable[key] = value;
}