2009-06-26 2 views

ответ

2

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

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

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

+0

Приветствие Я пошел с этим строки [] fileAndArgs = this.AppPath.Text.Split (новый Char [] { '"'}, 3); – Kaya

+1

Это не будет работать, если аргументы сами двойных кавычек в позволяют им включать пробелы. (Не уверен, что это так: исходный вопрос не уточняет.) – peSHIr

1

Сделайте 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]; 
+0

Это не сработает, если сами аргументы двойными кавычками позволяют включать пробелы. (Не уверен, что это так: исходный вопрос не уточняет.) – peSHIr

+0

Это точка, о которой я не думал. – kemiller2002

4

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

Так что ваш код будет что-то вроде:

Regex r = new Regex(@"("".*?"")|(\S+)"); 
MatchCollection mc = r.Matches(input); 
for (int i = 0; i < mc.Count; i++) 
{ 
    Console.WriteLine(mc[i].Value); 
} 
Смежные вопросы