Разбить строку с пробелами, если они не заключены в «кавычки»?

Чтобы сделать вещи простыми:

string streamR = sr.ReadLine();  // sr.Readline results in:
                                 //                         one "two two"

Я хочу иметь возможность сохранить их в виде двух разных строк, удалить все пробелы за исключением пробелов, найденных между кавычками. Поэтому мне нужно:

string 1 = one
string 2 = two two

До сих пор я обнаружил, что работает следующий код, но он удаляет пробелы в кавычках.

//streamR.ReadLine only has two strings
  string[] splitter = streamR.Split(' ');
    str1 = splitter[0];
    // Only set str2 if the length is >1
    str2 = splitter.Length > 1 ? splitter[1] : string.Empty;

Результатом этого становится

one
two

Я смотрел вРегулярное выражение для разделения на пробелы, кроме как в кавычках однако я не могу заставить regex работать / понимать код, особенно как разделить их так, чтобы они представляли собой две разные строки. Все коды там дают мне ошибку компиляции (я используюSystem.Text.RegularExpressions)

Ответы на вопрос(1)

Ваш ответ на вопрос