Обработка строк в C#: как получить путь и аргументы из строки

StackOverflow https://stackoverflow.com/questions/1049411

  •  20-08-2019
  •  | 
  •  

Вопрос

У меня есть строка с кавычками вокруг пути следующим образом:

«C:\Program Files (x86)\Windows Media Player\wmplayer.exe» arg1 arg2

Если я использую Text.Split(new Char[] { ' ' }, 2); тогда я получаю первое место.

Как получить путь и аргументы?

Это было полезно?

Решение

Попробуйте разделить двойные кавычки (Text.Split(new Char[] { '/"' }, 3);), затем возьмите последнюю строку в этом массиве и снова разделите пробел.

string[] pathAndArgs = Text.Split(new Char[] { '/"' }, 3);
string[] args = pathAndArgs[2].Split(new Char[] { ' ' }, 2);

Возможно, у меня там синтаксическая ошибка, но вы поняли, что я имею в виду.

Другие советы

Используйте регулярное выражение, например: ("".*?"")|(\S+)

Итак, ваш код будет выглядеть примерно так:

Regex r = new Regex(@"("".*?"")|(\S+)"); 
MatchCollection mc = r.Matches(input);
for (int i = 0; i < mc.Count; i++) 
{
   Console.WriteLine(mc[i].Value);
}

Выполните text.split и вернитесь назад от конца массива.

var input = "C:\\blah\\win.exe args1 args2";
var array = input.split(' ');
var arg1 = array[array.length -2];
var arg2 = array[array.length -1];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top