Разбить строку, содержащую параметры командной строки, на строку [] в C # - PullRequest
80 голосов
/ 18 ноября 2008

У меня есть одна строка, содержащая параметры командной строки для передачи другому исполняемому файлу, и мне нужно извлечь строку [], содержащую отдельные параметры, так же, как C #, если бы команды были указаны в команде -линия. Строка [] будет использоваться при выполнении другой точки входа сборок с помощью отражения.

Есть ли стандартная функция для этого? Или есть предпочтительный метод (регулярное выражение?) Для правильного разделения параметров? Он должен обрабатывать строки с разделителями "" ", которые могут содержать пробелы правильно, поэтому я не могу просто разбить на" ".

Пример строки:

string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo";

Пример результата:

string[] parameterArray = new string[] { 
  @"/src:C:\tmp\Some Folder\Sub Folder",
  @"/users:abcdefg@hijkl.com",
  @"tasks:SomeTask,Some Other Task",
  @"-someParam",
  @"foo"
};

Мне не нужна библиотека для разбора командной строки, просто способ получить строку [], которая должна быть сгенерирована.

Обновление : мне пришлось изменить ожидаемый результат, чтобы он соответствовал тому, что фактически генерируется C # (убрал лишние "в разделенных строках)

Ответы [ 21 ]

0 голосов
/ 18 ноября 2008

Да, строковый объект имеет встроенную функцию, называемую Split(), которая принимает один параметр, определяющий символ для поиска в качестве разделителя, и возвращает массив строк (строка []) с отдельными значениями в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...