C # string de manipulação como obter o caminho e argumentos de uma string
Pergunta
Eu tenho uma string com aspas em torno do caminho da seguinte maneira:
"C: \ Program Files (x86) \ Windows Media Player \ wmplayer.exe" arg1 arg2
Se eu usar Text.Split(new Char[] { ' ' }, 2);
então eu recebo o primeiro espaço.
Como obter o caminho e args?
Solução
Tente divisão nas aspas duplas (Text.Split (novo Char [] { '/ "'}, 3);)., Em seguida, tomar a última seqüência do array e dividir novamente no espaço
string[] pathAndArgs = Text.Split(new Char[] { '/"' }, 3);
string[] args = pathAndArgs[2].Split(new Char[] { ' ' }, 2);
I pode ter um erro de sintaxe lá, mas você começa o que eu quero dizer.
Outras dicas
Use uma expressão regular como: ("".*?"")|(\S+)
Assim, seu código seria algo como:
Regex r = new Regex(@"("".*?"")|(\S+)");
MatchCollection mc = r.Matches(input);
for (int i = 0; i < mc.Count; i++)
{
Console.WriteLine(mc[i].Value);
}
Do text.split e trabalhar o seu caminho de volta da final da matriz.
var input = "C:\\blah\\win.exe args1 args2";
var array = input.split(' ');
var arg1 = array[array.length -2];
var arg2 = array[array.length -1];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow