Как распарсить строку в c#, наподобие как это делается с аргументами командной строки?

Планируется построчно читать текстовый файл.
Строки будут такого же вида как аргументы, которые передаются приложению из командной строки (пример):
string1 "string2" string3 string4 "string5"

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

Возможно есть какая-то нативная функция?

UPD. Решение нашел следующее:
Regex RegExObj = new Regex("\"([^\"]+)\"|([^\\s]+)");
string[] str = File.ReadAllLines(path);
foreach (string s in str)
{
  Match matchResults = RegExObj.Match(s);
  List<string> result = new List<string>();
  while (matchResults.Success)
  {
    if (matchResults.Groups[1].Value != "")
      result.Add(matchResults.Groups[1].Value);
    else
      result.Add(matchResults.Groups[2].Value);
    matchResults = matchResults.NextMatch();
  }
}
  • Вопрос задан
  • 1699 просмотров
Решения вопроса 1
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MonkAlex
C#, SQL, Delphi, C++ etc
Можно погуглить именно парсеры командной строки, раз нужен такой же формат.
Они разные в целом бывают, так что всё зависит от того, какие у вас используются.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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