У меня есть строка, подобная этой
 /c SomeText\MoreText "Some Text\More Text\Lol" SomeText
Я хочу его tokenize, но я не могу просто разбить на пробелы. Я придумал несколько уродливый парсер, который работает, но мне интересно, есть ли у кого-то более элегантный дизайн.
Это в С# btw.
РЕДАКТИРОВАТЬ: Моя уродливая версия, в то время как уродливая, - O (N) и может быть быстрее, чем использование RegEx.
private string[] tokenize(string input)
{
    string[] tokens = input.Split(' ');
    List<String> output = new List<String>();
    for (int i = 0; i < tokens.Length; i++)
    {
        if (tokens[i].StartsWith("\""))
        {
            string temp = tokens[i];
            int k = 0;
            for (k = i + 1; k < tokens.Length; k++)
            {
                if (tokens[k].EndsWith("\""))
                {
                    temp += " " + tokens[k];
                    break;
                }
                else
                {
                    temp += " " + tokens[k];
                }
            }
            output.Add(temp);
            i = k + 1;
        }
        else
        {
            output.Add(tokens[i]);
        }
    }
    return output.ToArray();            
}
