Обрезать строки через Regex

Подскажите пожалуйста, как обрезать строку вида

{"Name","ПетровА"},
{"Run mode","E"},
{"IsMono","N"},
{"Date&Time","00.00.2021,00:00:00"},
{"ComputerName","PC,pid=0000,spid=0,ip=192.168.0.0"}

чтоб на выходе, получать лишь содержимое вторых кавычек. Пробелов в них не бывает, но вот бывают точки, запятые. Что то вроде такого

ПетровА
E
N
25.10.2021,07:10:53

А последнюю строку еще больше разбить надо. Отдельно название PC, pid, spid, ip.

Я регулярные совершенно не понимаю( Если в наглую нельзя, то был бы рад ссылкам на материалы для изучения.


Ответы (1 шт):

Автор решения: aepot

Паттерн получился такой {"(.*?)","(.*?)"}. Советую сайт https://regex101.com/ для тестирования регулярок - один из лучших, на мой взгляд.

static void Main(string[] args)
{
    string text = @"{""Name"",""ПетровА""},
{""Run mode"",""E""},
{""IsMono"",""N""},
{""Date&Time"",""00.00.2021,00:00:00""},
{""ComputerName"",""PC,pid=0000,spid=0,ip=192.168.0.0""}";
    var entries = ParseEntries(text);
    foreach (var entry in entries)
    {
        Console.WriteLine($"{entry.Key}: {entry.Value}");
    }

    Console.WriteLine(new string('-', 15));

    string computerName = entries["ComputerName"];
    Dictionary<string, string> computer = computerName.Split(',')
        .Skip(1)
        .Select(pair => pair.Split('=').ToArray())
        .ToDictionary(pair => pair[0], pair => pair[1]);

    foreach (var pair in computer)
    {
        Console.WriteLine($"{pair.Key}: {pair.Value}");
    }

    Console.ReadKey();
}

private static Dictionary<string, string> ParseEntries(string text)
{
    Dictionary<string, string> entries = new Dictionary<string, string>();
    foreach (Match match in Regex.Matches(text, @"{""(.*?)"",""(.*?)""}"))
    {
        entries[match.Groups[1].Value] = match.Groups[2].Value;
    }
    return entries;
}

Вывод в консоль

Name: ПетровА
Run mode: E
IsMono: N
Date&Time: 00.00.2021,00:00:00
ComputerName: PC,pid=0000,spid=0,ip=192.168.0.0
---------------
pid: 0000
spid: 0
ip: 192.168.0.0

Если структура данных константная, то можно и в класс распарсить с соответствующими свойствами. Но я остановился на словаре как на более общем решении.

→ Ссылка