Analizuję następujące dane przy użyciu wyrażenia regularnego w języku C #.
Nie mogę zmienić struktury danych wejściowych, więc muszę wiedzieć, czy to, co robię, jest prawidłowe i czy są jakieś potencjalne pułapki.
Nie jestem ekspertem od wyrażeń regularnych, więc doceniłbym kilka porad.
string data = "[contact person]{some person name}[cellphone]{12312313123}[fax]{13131312312312321}";
string regex = @"[(?<name>.*?)]{(?<value>.*?)}";
foreach (Match s in Regex.Matches(data, regex))
Console.WriteLine(s.Groups["name"] + " = " + s.Groups["value"]);
Otrzymuję następujący wynik:
contact person = some person name
cellphone = 12312313123
fax = 13131312312312321
Odpowiedzi:
1 dla odpowiedzi № 1Twój kod wygląda dobrze, to tylko moja sugestia:
var dic=Regex.Matches(data, regex).Cast<Match>()
.ToDictionary(m=>m.Groups["name"].Value,m=>m.Groups["value"].Value);