.NET 4.x Используя регулярные выражения получить значения из строки - C#
Формулировка задачи:
Всем привет. Используя регулярные выражения нужно из строки вида
method?variable1=data&variable2=data&...
получить значенияmethod
(Группа 1),variable1=data
(Группа 2),variable2=data
(Группа 3) и т.д.Решение задачи: «.NET 4.x Используя регулярные выражения получить значения из строки»
textual
Листинг программы
public static KeyValuePair<string, Dictionary<string, string>>? ParseMethodsAndValues(string s)
{
var res = Regex.Matches(s, @"(?<=(?<method>\A[^\?]+)(\Z|(\?(?:[^=]*=[^&]*&){0,})(?<var>[^=]*)=(?<value>[^&]*)(?=&|\Z)))");
Dictionary<string, string> dtsmall = new Dictionary<string, string>();
foreach (Match m in res)
{
if(m.Groups["var"].Value!="")
dtsmall.Add(m.Groups["var"].Value, m.Groups["value"].Value);
}
if (res.Count > 0)
return new KeyValuePair<string, Dictionary<string, string>>(res[0].Groups["method"].Value, dtsmall);
else return null;
}