4

我在路径周围有一个带引号的字符串,如下所示:

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

如果我使用Text.Split(new Char[] { ' ' }, 2);,那么我会得到第一个空间。

如何获取路径和参数?

4

3 回答 3

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);
}
于 2009-06-26T14:35:59.397 回答
2

尝试拆分双引号 (Text.Split(new Char[] { '/"' }, 3);) 然后取出该数组中的最后一个字符串并在空格上再次拆分。

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

我可能在那里有语法错误,但你明白我的意思。

于 2009-06-26T14:24:31.947 回答
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];
于 2009-06-26T14:23:49.377 回答