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 に答える