C # строка обрабатывает, как получить путь и аргументы из строки - PullRequest
4 голосов
/ 26 июня 2009

У меня есть строка с кавычками по пути:

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

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

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

Ответы [ 3 ]

4 голосов
/ 26 июня 2009

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

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

Regex r = new Regex(@"("".*?"")|(\S+)"); 
MatchCollection mc = r.Matches(input);
for (int i = 0; i < mc.Count; i++) 
{
   Console.WriteLine(mc[i].Value);
}
2 голосов
/ 26 июня 2009

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

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

Там может быть синтаксическая ошибка, но вы понимаете, о чем я.

1 голос
/ 26 июня 2009

Сделайте 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...