我有路徑周圍引號的字符串如下:C#字符串處理是如何從一個字符串獲取路徑和args
「C:\ Program Files文件(x86)的\ Windows媒體播放器\ wmplayer.exe」 ARG1 ARG2
如果我使用Text.Split(new Char[] { ' ' }, 2);
那麼我會得到第一個空格。
如何獲取路徑和參數?
我有路徑周圍引號的字符串如下:C#字符串處理是如何從一個字符串獲取路徑和args
「C:\ Program Files文件(x86)的\ Windows媒體播放器\ wmplayer.exe」 ARG1 ARG2
如果我使用Text.Split(new Char[] { ' ' }, 2);
那麼我會得到第一個空格。
如何獲取路徑和參數?
嘗試分裂(Text.Split(新字符[] {「/」「},3))。然後在空間服用該數組和分割在最後一個字符串再次
string[] pathAndArgs = Text.Split(new Char[] { '/"' }, 3);
string[] args = pathAndArgs[2].Split(new Char[] { ' ' }, 2);
我可能有一個語法錯誤在那裏,但你明白我的意思
做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];
使用正則表達式,如:。("".*?"")|(\S+)
所以,你的代碼將是這樣的:
Regex r = new Regex(@"("".*?"")|(\S+)");
MatchCollection mc = r.Matches(input);
for (int i = 0; i < mc.Count; i++)
{
Console.WriteLine(mc[i].Value);
}
如果參數本身被雙引號使它們包含空格,這將不起作用。 (不知道這是否是這種情況:原來的問題沒有澄清。) – peSHIr 2009-06-26 14:51:32
這是我沒有想到的一點。 – kemiller2002 2009-06-26 14:56:37