我在路径周围有一个带引号的字符串,如下所示:
“C:\ Program Files(x86)\ Windows Media Player \ wmplayer.exe”arg1 arg2
如果我使用Text.Split(new Char[] { ' ' }, 2);
,那么我会获得第一个空格。
如何获得路径和args?
答案 0 :(得分: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);
}
答案 1 :(得分:2)
尝试拆分双引号(Text.Split(new Char [] {'/“'},3);)然后取出该数组中的最后一个字符串并再次分割该空格。
string[] pathAndArgs = Text.Split(new Char[] { '/"' }, 3);
string[] args = pathAndArgs[2].Split(new Char[] { ' ' }, 2);
我可能会遇到语法错误,但你明白我的意思。
答案 2 :(得分: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];