@p4p

Парсинг строки на c#. Как реализовать?

Есть строка вида "key"="value";"key1"="value1";"key2"="value2"

У нас имеется строка key, нужно найти что содержится после первого "=" и до ";"

То есть зная ключ, нужно отпарсить его значение?
  • Вопрос задан
  • 6813 просмотров
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
самый простой вариант - распарсить в мэпу и брать значение по ключу. А так - регулярками.
Ответ написан
Комментировать
GavriKos
@GavriKos
А у вас там не json случайно? Может его парсилку использовать?
Ответ написан
const string input = "\"key\"=\"value\";\"key1\"=\"value1\";\"key2\"=\"value2\"";

var result = Regex.Matches(input, @"\""(?<key>\w*)\""=\""(?<value>\w*)\""")
              .OfType<Match>()
              .ToDictionary(match => match.Groups["key"], match => match.Groups["value"]);

foreach (var pair in result) {
  Console.Write(pair.Key);
  Console.Write("=");
  Console.WriteLine(pair.Value);
}
Ответ написан
Комментировать
string s = "\"key\"=\"value\";\"key1\"=\"value1\";\"key2\"=\"value2\"";
var dict = s.Split(';').Select(n => n.Split('=')).ToDictionary(v => v[0].Trim('\"'), v => v[1].Trim('\"'));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы